使用HTMLTestRunner在目标目录下并未生成HTML文件解决办法
使用pycharm工具应用HTMLTestRunner模块时,测试用例可以顺利运行,但在目标目录下并未生成HTML文件。使用python的IDLE,能够正常运行并创建写入测试结果。
测试环境:python2.7、pycharm 5.0.4、win10
测试代码如下:
#encoding:utf-8
import HTMLTestRunner
import unittest
import os
import time
class testsuanshu(unittest.TestCase):
def setUp(self):
print 'start'
def testAdd(self):
print 3+8
def testSub(self):
print 8-3
def tearDown(self):
print 'end'
if __name__=='__main__':
testsuit=unittest.TestSuite()
#将测试用例加入到测试容器中
testsuit.addTest(testsuanshu('testAdd'))
time.sleep(10)
testsuit.addTest(testsuanshu('testSub'))
time.sleep(10)
print u"打印测试报告"
filename="d:\\testreport\\result.html"
fp=file(filename,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'算法测试报告',description=u'用例执行情况')
#运行测试用例
runner.run(testsuit)
fp.close()
能够正常运行测试用例,但是不能创建与写入测试报告。
以上代码拷贝到python的IDLE,能够正常运行并创建写入测试结果。
为什么用PyCharm或者Eclipse执行测试成功但无法生成HTMLTestRunner报告?
查看博客:https://blog.csdn.net/huilan_same/article/details/51727572
问题原因:发现是编辑器的原因,编辑器为了方便用户执行测试,都有一项功能,可以用编辑器来调用unittest或者nose来执行测试用例,这种情况下,执行的只是用例或者套件,而不是整个文件,写在main里的代码是不会被执行的!!
自然无法生成测试报告。
解决办法:运行文件的时候不要选择以unitest的方式运行,要选择运行文件的方式。如图:
选择这种方式:
运行文件本身后,正常输出测试报告。