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)
我有一个脚本调用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)