python teamcity 中的鼻子测试报告

python nose test reporting in teamcity

我有一个脚本调用run_test.py,内容如下:-

if __name__ == '__main__':
    nose.main(argv=sys.argv)

运行 我所有的测试都这么简单:

run_test.py unittests/test_*.py

我现在正在尝试将此的输出报告合并到 teamcity 中。 我指的是这个 https://github.com/JetBrains/teamcity-messages

我尝试按照文档更改所有 unittests/test_*.py 程序。如果 运行 像这样单独测试,它会起作用:-

unittest/test_one.py

但是当运行它通过鼻子时它不起作用,像这样:

run_test.py unittest/test_one.py

根据文档 link,它说在 TeamCity 构建下自动启用鼻子报告。我不太明白那是什么意思。

这里有什么我遗漏的吗?

非常感谢任何帮助。谢谢。

看看鼻子xunit plugin。 它将生成一个包含结果的 xml 文件 => jenkins 和 teamcity 可以使用。

some documentation for teamcity

this post 告诉您如何在测试脚本中启用插件

if __name__ == '__main__':
    argv = sys.argv[:]
    argv.insert(1, "--with-xunit")
    nose.main(argv=argv)

我终于找到了实现它的方法。 这是我在 run_test.py

中修改的内容
#!/usr/bin/env python

import os
import sys
import unittest

from teamcity import is_running_under_teamcity
from teamcity.unittestpy import TeamcityTestRunner



loader = unittest.TestLoader()
start_dir = sys.argv[1]
suite = loader.discover(start_dir, pattern='test_*.py')

#runner = unittest.TextTestRunner()
runner = TeamcityTestRunner(verbosity=2)
runner.run(suite)