python - XML 输出包括 setup_module 和 teardown_module

标签 python xml unit-testing nosetests python-unittest

我正在尝试记录我在 xml 中的 python 单元测试的所有输出。 我有测试用例、分类和模块的设置和拆卸。所有输出都被打印到控制台,但只有测试用例 setUp 和 tearDown 显示在 xml 中。

命令运行:

nodetests -s ATestModule --with-xunit --xunit-file=a.xml

特定测试用例的输出是:

<testcase classname="ATestModule.FirstTestCase" name="testOne" time="0.553">    
    <system-out><![CDATA[2014-02-24 17:51:30,560 - INFO - TestData]]>
    </system-out>
</testcase>

我将设置和拆卸模块定义为:

def setup_module():
  print(__name__ + "Setup module")

def teardown_module():
  print(__name__ + "Tear down module")

我用了http://pythontesting.net/framework/nose/nose-fixture-reference/举个例子。

这些没有出现在测试用例中,这是可以理解的,但我仍然希望它们出现在 xml 中的某个地方?是否有更适合我需求的设置或不同的运行者?

谢谢!

最佳答案

这是我发现的。根据documentation ,模块级设置和拆卸应命名为 setUpModuletearDownModule。我已经尝试了一些测试,果然,虽然调用了这些 fixture 函数,但它们的输出不包含在输出 XML 文件中。

同样,类级别的装置 setUpClasstearDownClass 也被调用,但没有显示任何输出。这可能是设计使然,我不知道如何修复它。

更新

我查看了 nose 的源代码,果然,固定装置没有 XML 输出。

关于python - XML 输出包括 setup_module 和 teardown_module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22000985/

相关文章:

xml - XLSX 对变更的取证分析

xml - DTD 和 XML 示例

java - Robolectric 2.0 和 RoboGuice 2.0 集成

java - 无法从模拟组件类调用函数

python - 使用 tkinter 在 python 上显示/更新分数

python - 使用 extended for cursor 在 Freebase Python API 中不起作用?

c++ - QDom 删除节点

ios - 在 Xcode 6 中测试覆盖率文件

php - 从 PHP 脚本调用 Python 脚本时,在控制台运行时创建的临时文件不是通过 PHP 调用创建的

python - 在 Tornado 中接受 "Content-Encoding: gzip"