簡體   English   中英

如何在使用xmlrunner時通過unittest啟用自定義測試發現

[英]How to enable custom test discovery with unittest while using xmlrunner

我試圖在使用xmlrunner以XML格式報告我的測試結果時使用自定義測試發現。 有人可以向我解釋如何正確使用unittest.TestLoader().discover()嗎? 我已經在文件test.py的末尾嘗試了以下內容:

if __name__ == '__main__':
     with open('output.xml', 'wb') as output:
         unittest.main(
             testRunner=xmlrunner.XMLTestRunner(output=output),
             failfast=False, buffer=False, catchbreak=False, exit=False, 
             testLoader=unittest.TestLoader().discover('.', pattern = "*_test.py")
         )

但這給出了錯誤:

File "test.py", line 20, in <module>
    failfast=False, buffer=False, catchbreak=False, exit=False, testLoader=unittest.TestLoader().discover('.', pattern = "*_test.py"))
  File "/usr/lib/python3.5/unittest/main.py", line 93, in __init__
    self.parseArgs(argv)
  File "/usr/lib/python3.5/unittest/main.py", line 140, in parseArgs
    self.createTests()
  File "/usr/lib/python3.5/unittest/main.py", line 144, in createTests
    self.test = self.testLoader.loadTestsFromModule(self.module)
AttributeError: 'TestSuite' object has no attribute 'loadTestsFromModule'

如果我在沒有testLoader參數並且模塊參數設置為None的情況下運行,則將運行測試發現,但默認設置不是我想要的。

到目前為止,我找到的所有答案都與命令行有關,例如python –m unittest discover -p "test*.py" ...這不是我想要的。 我將不勝感激第一個代碼段所建議的代碼內解決方案。

謝謝

我遇到了同樣的問題,最終得到了以下解決方案:

test_results = xmlrunner.XMLTestRunner(output="xml_test_result").run(unittest.TestLoader().discover("./test", "*_test.py"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM