Python Pytest:如何在Pytest html报告中更新jenkins url而不是本地路径
我可以看到下面在我的html报告中创建的路径,当它是本地作业时,我可以从html打开此路径,但当我在jenkins中运行时,此链接无法工作,我可以看到元数据有url和工作区信息,我可以使用此元数据在html文件中生成适当的链接,这样我就可以从詹金斯页面上打开它们 href="file:///space/scratch/jenkins/navarro/workspace/coverage_regression/dut/python/.simtest/NavarroSimTestSystem/default/TestJaxi/test_py_jaxi_read_version_reg_ss/TestJaxi.test_py_jaxi_read_version_reg_ss-2458081572_simulate.log" type="text/plain">TestJaxi.test_py_jaxi_read_version_reg_ss-2458081572_simulate.log href=”file:///space/scratch/jenkins/navarro/workspace/coverage_regression/dut/python/.simtest/NavarroSimTestSystem/default/TestJaxi/test_py_jaxi_read_version_reg_ss/TestJaxi.test_py_jaxi_read_version_reg_ss-2458081572_simulate.log“type=“text/plain”>TestJaxi.test\u py\u jaxi\u read\u version\u reg\u ss-2458081572\u simulate.logPython Pytest:如何在Pytest html报告中更新jenkins url而不是本地路径,python,jenkins,jenkins-pipeline,pytest,Python,Jenkins,Jenkins Pipeline,Pytest,我可以看到下面在我的html报告中创建的路径,当它是本地作业时,我可以从html打开此路径,但当我在jenkins中运行时,此链接无法工作,我可以看到元数据有url和工作区信息,我可以使用此元数据在html文件中生成适当的链接,这样我就可以从詹金斯页面上打开它们 href="file:///space/scratch/jenkins/navarro/workspace/coverage_regression/dut/python/.simtest/NavarroSimTestSystem/def
你想在詹金斯的工作中展示测试结果吗?我发现使用--junitxml开关生成junit.xml更容易,并将Jenkins指向junitxml路径。它显示了所有测试结果数据。或者您是否尝试过“html publisher插件”。我通过以下方式找到了它
def pytest_configure(self, config):
# below lines has been added to manipulate the log path in html report while running in jenkins
if 'BUILD_URL' in config._metadata:
self.build_url = os.path.join(config._metadata['BUILD_URL'],'artifact')
@pytest.mark.optionalhook
def pytest_html_results_table_html(self, report, data):
if test_artifact_simulate and os.path.isfile(test_artifact_command):
from py.xml import html
ul = html.ul()
if self.build_url != None :
simulate_log = test_artifact_simulate[test_artifact_simulate.find('dut'):]
print 'KKT simulate log is %s' %simulate_log
jenkins_log_path = os.path.join(self.build_url,simulate_log)
print 'KKT jenkins_log_path log is %s' %jenkins_log_path
li = html.li(html.a(os.path.basename(test_artifact_simulate),
href= jenkins_log_path, type="text/plain"))
else :
li = html.li(html.a(os.path.basename(test_artifact_simulate),
href='file://' + test_artifact_simulate, type="text/plain"))
ul.append(li)
div = html.div()
div.append(html.p("Test artifacts:"))
div.append(ul)
data.append(div)
感谢您的回复,我正在生成xml,但当我在jenkins中打开它时,它显示了std_out,但没有显示到模拟的链接。文件必须托管在某个地方才能使链接正常工作。您可以将文件存储为Jenkins工件,并将链接替换为工件的链接(不过您必须自己组装链接,例如从Jenkins环境变量提取作业ID等)。谢谢@hoefling,我已经以类似的方式实现了,我能够获得。知道如何更新摘要链接吗,--------------------------------生成的html文件:file:///space/scratch/kkt/trails/soc/python/checking.html ---------------------------