1、编写测试用例,主要逻辑在main代码块中
- '''
- @Time : 2022/9/17 22:13
- @Author : zemel
- @File : autotestrp.py
- '''
- import HTMLTestRunner
- import unittest
- import cal
- from io import StringIO
-
- class TestHtmlTest(unittest.TestCase):
-
- cl = cal.Add()
-
-
-
- def setUp(self) -> None:
- print('测试用例执行开始')
-
-
- def tearDown(self) -> None:
- print('测试用例执行结束')
-
-
- def test_add(self):
-
- num = self.cl.add(1, 2)
- self.assertEqual(num, 3)
-
- def test_miuls(self):
- res = self.cl.miuls(3, 2)
- self.assertEqual(res, 2, "计算错误")
-
- if __name__ == '__main__':
- # 生成测试套件
- suite = unittest.TestSuite()
- # 给测试套件添加测试用例
- suite.addTest(TestHtmlTest('test_add'))
- suite.addTest(TestHtmlTest('test_miuls'))
- #运行测试用例
- # runner = unittest.TextTestRunner()
-
- #通过文件读写的形式,把生成的测试报告存储到指定的文件里
- file = open('./testres.html', 'wb')
- #生成测试报告
- runner = HTMLTestRunner.HTMLTestRunner(stream=file, title='第一份单元测试自动化测试报告', description="这是unittest框架结合TestHtmlRunner生成测试报告")
- runner.run(suite)
2、下载HTMLTestRunner.py,放在个人的python安装目录的Lib下面
寻找python执行目录如下方法
1)个人的是C:\Users\86134\AppData\Local\Programs\Python\Python310\Lib
如果还不指导,可以打开cmd,通过where python查找目录;
2)或者在cmd执行py -0p也可以查找到目录;
3)是在不行,在cmd下输入python,进入cmd交互变成模式,
import sys
sys.path 打印所有的路径也可以找到
4)拷贝HTMLTestRunner代码放到Lib目录下
注意:
python3.0以上拷贝如下代码:
- """
- A TestRunner for use with the Python unit testing framework. It
- generates a HTML report to show the result at a glance.
- The simplest way to use this is to invoke its main method. E.g.
- import unittest
- import HTMLTestRunner
- ... define your tests ...
- if __name__ == '__main__':
- HTMLTestRunner.main()
- For more customization options, instantiates a HTMLTestRunner object.
- HTMLTestRunner is a counterpart to unittest's TextTestRunner. E.g.
- # output to a file
- fp = file('my_report.html', 'wb')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=fp,
- title='My unit test',
- description='This demonstrates the report output by HTMLTestRunner.'
- )
- # Use an external stylesheet.
- # See the Template_mixin class for more customizable options
- runner.STYLESHEET_TMPL = ''
- # run the test
- runner.run(my_test_suite)
- ------------------------------------------------------------------------
- Copyright (c) 2004-2007, Wai Yip Tung
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name Wai Yip Tung nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- """
-
- # URL: http://tungwaiyip.info/software/HTMLTestRunner.html
-
- __author__ = "Wai Yip Tung"
- __version__ = "0.8.2"
-
-
- """
- Change History
- Version 0.8.2
- * Show output inline instead of popup window (Viorel Lupu).
- Version in 0.8.1
- * Validated XHTML (Wolfgang Borgert).
- * Added description of test classes and test cases.
- Version in 0.8.0
- * Define Template_mixin class for customization.
- * Workaround a IE 6 bug that it does not treat