1. 程式人生 > >Python 同一檔案中,有unittest不執行“if __name__ == '__main__”,不生成HTMLTestRunner測試報告的解決方案

Python 同一檔案中,有unittest不執行“if __name__ == '__main__”,不生成HTMLTestRunner測試報告的解決方案

1、問題:Python中同一個.py檔案中同時用unittest框架和HtmlReport框架後,HtmlReport不被執行。

2、為什麼?其實不是HtmlReport不被執行,也不是HtmlReport不生成測試報告,是因為if __name__ == '__main__'中的程式碼根本沒執行好嘛!

3、解決方案的來源:因為最開始我的main程式碼中沒有寫print列印語句。沒有生成HTML報告,我也在網上找了很久的方法,後來才懷疑是不是沒有執行main方法,於是寫了個print語句,果然沒有執行。於是找了一下python unittest的執行方式,終於找到解決方案,現在分享給大家。

import unittest
import HtmlTestRunner

class DemoTest(unittest.TestCase):

    def test_one(self):
        print('第一條case')
    def test_two(self):
        print('第二條case')

if __name__ == '__main__':
    print("開始main")
    suite = unittest.TestSuite()
    suite.addTest(DemoTest('test_one'))
    suite.addTest(DemoTest('test_two'))

    filename = 'E:\\test.html'
    fp = open(filename, 'w')

    runner = HtmlTestRunner.HTMLTestRunner(stream=fp, output='E:/',report_title='test-results',
                                           descriptions=u'第一個python unittest')
    runner.run(suite)

    fp.close()

轉自https://www.cnblogs.com/youreyebows/p/7867508.html