Nosetest覆盖xml输出

2024-10-01 04:47:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在nostests写入unittext xml文件两次时遇到问题。在

我有这个python脚本

import unittest

class aa(unittest.TestCase):
    def test_aa(self):
        self.assertTrue(True)


testlist = []

suite = unittest.TestLoader().loadTestsFromTestCase(aa)
testlist.append(suite)

allSuites = unittest.TestSuite(testlist)
unittest.TextTestRunner(verbosity=3).run(allSuites)

print 'done'

问题是如果我这样运行

^{pr2}$

我得到这个输出

test_aa (test.aa) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
done
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

问题是这会写入nosetests.xml归档两次。有没有办法让这个只运行一次测试?在

我需要这样做的原因是我有一个单元测试,第一次基本上运行良好,第二次失败,xml文件被0个测试覆盖。在

干杯,
保罗


Tags: 文件intestselfokxmlunittestsuite
1条回答
网友
1楼 · 发布于 2024-10-01 04:47:13

您正在运行两次测试,一次是在导入期间(用unittest.xx.run(allSuites)行),第二次是在nose发现{}测试时使用nose。如果您打算使用nose,则不必在脚本中运行测试-nose将充当您的测试运行程序。在

您可以通过使用普通python your_test.py(不使用nose)运行test一次,或者将test重写为类似并使用您的命令,如问题所述:

import unittest

class aa(unittest.TestCase):
    def test_aa(self):
        self.assertTrue(True)

if __name__ == '__main__':
    # this will not run on import, only when tests are running with unittest with python
    testlist = []

    suite = unittest.TestLoader().loadTestsFromTestCase(aa)
    testlist.append(suite)

    allSuites = unittest.TestSuite(testlist)
    unittest.TextTestRunner(verbosity=3).run(allSuites)

    print 'done'

相关问题 更多 >