我们公司使用 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 中。
我想在单个测试的 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/