python - Jenkins:Stacktrace 和 GitLab 之间的链接

标签 python jenkins gitlab pytest

我们公司使用 Jenkins 和 GitLab。我们使用 py.test 为 Jenkins 创建 XML 输出,它由 jUnit Jenkins 插件呈现。

到目前为止,异常的堆栈跟踪都是纯 ascii。如果我们能以某种方式连接到 Jenkins 并显示指向我们的 gitlab 服务器的超链接而不是 html pre block ,那就太好了。

在我们的例子中,我们足以过滤测试输出的每一行并在其上使用正则表达式....

Jenkins jUnit 插件的示例输出:

File "/home/modwork_ems_d66/src/foo/foo/utils/testutils.py", line 975, in wrapped
    return fn(*args, **kwargs)
File "/home/modwork_ems_d66/src/foo/foo/tests/FooTest.py", line 641, in test_empty_models_if_unused
    models))

我想要一个指向托管“foo”的 git 仓库的服务器的超链接。在我们的例子中,这将是“https://source/repos/foo/files/master/foo/foo/tests/FooTest.py

如何做到这一点?我知道如何使用正则表达式。问题是如何将正则表达式挂接到 jenkins 中。

这是一个可视化的截图 enter image description here

我想在单个测试的 TestReport 上使用此链接。这些页面的 URL 模式:

https://jenkins/job/ci_foo_bar/lastCompletedBuild/testReport/src.myapp.myapp.tests.test_tree/TestCase/test_something/

最佳答案

如果您可以在测试过程后获得异常输出,您可以实现一个解析器,该解析器为您准备一个简单的 html 报告作为构建步骤。

一个最简单的方法,你可以用 sed 来实现一个正则表达式

sed -e 's@"/home/modwork_ems_d66/src\(.*\?\)"@<a href="https://source/repos/foo/files/master\1">\1</a>@' exceptions.txt

对异常文件进行操作。

关于python - Jenkins:Stacktrace 和 GitLab 之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20196532/

相关文章:

gitlab - 当提交推送到另一个项目时触发项目构建

gitlab 不发送邮件(队列仍在增长)

python - 应用循环后原始数据帧没有变化

python - 在开发过程中使用 Django、South 和 Sqlite

python - 如何多线程从列表中读取字典并进入数据库

java - Selenium safari Web 驱动程序无法在 Mac 上使用 jenkins 启动 safari 浏览器

simulation - 使用 Python 建模线性系统

jenkins - 如何让 Jenkins 使用从节点上设置的现有环境变量?

c# - mono-repo 中包的独立版本控制

备份文件中的 gitlab 包