【问题标题】:python nose test reporting in teamcityteamcity中的python鼻子测试报告
【发布时间】:2019-10-25 14:27:45
【问题描述】:

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

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

这里有什么我遗漏的吗?

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

【问题讨论】:

    标签: python unit-testing teamcity nose


    【解决方案1】:

    看看鼻子的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)
    

    【讨论】:

      【解决方案2】:

      我终于找到了实现这一目标的方法。 这是我在 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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-25
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多