当前位置: 首页 > news >正文

优秀flash网站欣赏wordpress wp

优秀flash网站欣赏,wordpress wp,凡客官方网,淡水网站建设定制Unittest 一、Unittest 简介 unittest是 Python 内置的标准测试框架#xff0c;用于编写和运行单元测试。它提供了一组工具和类#xff0c;帮助开发者组织、编写和执行测试用例#xff0c;以验证代码的正确性。 二、Unittest 核心要素 1. TestCase#xff08;测试用例类…Unittest 一、Unittest 简介 unittest是 Python 内置的标准测试框架用于编写和运行单元测试。它提供了一组工具和类帮助开发者组织、编写和执行测试用例以验证代码的正确性。 二、Unittest 核心要素 1. TestCase测试用例类 定义与作用 TestCase是unittest框架中最小的测试单元用于封装一个具体的测试场景。它通常是一个继承自unittest.TestCase的类每个类中的方法代表一个具体的测试用例。测试用例应该是独立的、可重复执行的并且能够验证被测试代码的特定功能或行为。 主要方法 例如 import unittestclass TestCase(unittest.TestCase):def setUp(self):self.num 5def tearDown(self):del self.numdef test_equal(self):self.assertEqual(self.num, 5)if __name__ __main__:unittest.main() setUp()在每个测试方法执行之前被调用用于设置测试环境例如初始化对象、创建临时文件等。tearDown()在每个测试方法执行之后被调用用于清理测试环境例如删除临时文件、释放资源等。测试方法以“test_”开头的方法被视为测试方法这些方法中包含具体的测试逻辑和断言用于验证被测试代码的输出是否符合预期。 2. TestSuite测试套件 定义与作用 TestSuite用于组合多个测试用例或测试套件形成一个更大的测试集合。它可以将多个相关的测试用例组织在一起方便一次性执行。通过TestSuite可以灵活地选择要执行的测试用例以及控制测试的执行顺序。 主要方法 例如 import unittestclass TestA(unittest.TestCase):def test_a(self):passclass TestB(unittest.TestCase):def test_b(self):passsuite unittest.TestSuite() suite.addTest(TestA(test_a)) suite.addTest(TestB(test_b)) addTest(test_case)将一个测试用例添加到测试套件中。addTests(test_cases)将多个测试用例添加到测试套件中。 3. TestRunner测试运行器 定义与作用 TestRunner负责执行测试用例或测试套件并生成测试结果报告。它可以将测试结果以文本形式或其他格式输出以便开发者查看测试的执行情况。不同的TestRunner可以提供不同的输出格式和功能例如TextTestRunner以文本形式输出测试结果而一些第三方库可以生成 HTML 格式的测试报告。 主要方法 例如 import unittestsuite unittest.TestSuite() # 添加测试用例到套件 runner unittest.TextTestRunner() result runner.run(suite) run(test)执行给定的测试用例或测试套件并返回一个TestResult对象其中包含测试的结果信息。 4. 示例代码 4.1. 新建一个文件test01.py用例如下 import unittestdef sum_( a, b):return a bclass TestA(unittest.TestCase):def test_add_1(self):result sum_(1, 2)self.assertEqual(result, 3)def test_add_2(self):result sum_(2, 3)self.assertNotEqual(result, 4) 4.2. 新建一个文件test02.py用例如下 import unittestdef sub_( a, b):return a - bclass TestB(unittest.TestCase):def test_sub_1(self):result sub_(4, 2)self.assertEqual(result, 2)def test_sub_2(self):result sub_(4, 1)self.assertNotEqual(result, 4) 4.3. 新建一个文件003.py通过TestSuite选择用例进行执行 import unittest import test01 import test02suite unittest.TestSuite() # 添加test01文件中的用例test_add_1 suite.addTest(test01.TestA(test_add_1)) # 添加test02文件中的用例test_sub_1 suite.addTest(test02.TestB(test_sub_1)) runner unittest.TextTestRunner() runner.run(suite) 5. TestLoader测试加载器 5.1. 定义与作用 TestLoader用于自动发现和加载测试用例。它可以根据指定的规则搜索测试模块、测试类和测试方法并将它们加载到测试套件中。TestLoader使得开发者可以方便地组织和执行大量的测试用例而无需手动添加每个测试用例到测试套件中。 5.2. 主要方法 例如 import unittestloader unittest.TestLoader() suite loader.loadTestsFromModule(__name__) loadTestsFromModule(module)从一个 Python 模块中加载测试用例。loadTestsFromTestCase(test_case_class)从一个测试用例类中加载测试用例。loadTestsFromName(name)根据给定的名称加载测试用例可以是模块名、类名或方法名。 5.3. 示例 5.3.1. loadTestsFromModule(module) 创建一个名为my_module.py的模块其中包含以下测试用例类 # my_module.py import unittestclass MyTestCase1(unittest.TestCase):def test_method1(self):self.assertEqual(2 2, 4)class MyTestCase2(unittest.TestCase):def test_method2(self):self.assertTrue(5 3) 使用loadTestsFromModule执行用例 import unittest import my_moduleloader unittest.TestLoader() suite loader.loadTestsFromModule(my_module)runner unittest.TextTestRunner() runner.run(suite) 5.3.2. loadTestsFromTestCase(test_case_class) 创建一个测试用例类定义如下 import unittestclass MySpecialTestCase(unittest.TestCase):def test_something(self):self.assertEqual(3 * 3, 9)def test_another_thing(self):self.assertFalse(2 3) 使用loadTestsFromTestCase执行用例 import unittest from your_module import MySpecialTestCaseloader unittest.TestLoader() suite loader.loadTestsFromTestCase(MySpecialTestCase)runner unittest.TextTestRunner() runner.run(suite) 5.3.3. loadTestsFromName(name) 以模块名为例 创建一个模块test_module.py其中包含测试用例类。 # test_module.py import unittestclass TestInModule(unittest.TestCase):def test_one(self):self.assertEqual(4 * 2, 8) import unittestloader unittest.TestLoader() suite loader.loadTestsFromName(test_module) # 注意这里有引号runner unittest.TextTestRunner() runner.run(suite) 以类名为例 继续使用上面的test_module.py模块。 import unittestloader unittest.TestLoader() suite loader.loadTestsFromName(test_module.TestInModule) # 注意这里有引号runner unittest.TextTestRunner() runner.run(suite) 以方法名为例 同样使用上面的模块。 import unittestloader unittest.TestLoader() suite loader.loadTestsFromName(test_module.TestInModule.test_one) # 注意这里有引号runner unittest.TextTestRunner() runner.run(suite) 6. Fixture 6.1. 定义与作用 Fixture 是在测试用例执行前后执行的一组操作用于设置测试环境和清理资源。例如在测试数据库操作时可以在测试用例执行前连接数据库在测试用例执行后关闭数据库连接。Fixture 可以确保每个测试用例都在相同的初始状态下执行提高测试的可重复性和可靠性。 6.2. 主要方法 例如 import unittestclass MyTest(unittest.TestCase):classmethoddef setUpClass(cls):print(Set up class.)def setUp(self):print(Set up.)def test_method(self):print(Running test method.)def tearDown(self):print(Tear down.)classmethoddef tearDownClass(cls):print(Tear down class.) setUp()在每个测试用例执行前调用用于设置测试环境。tearDown()在每个测试用例执行后调用用于清理测试环境。setUpClass()在测试类的所有测试用例执行前调用一次通常用于执行一些耗时的初始化操作如连接数据库。tearDownClass()在测试类的所有测试用例执行后调用一次用于清理资源如关闭数据库连接。 总之unittest的这些核心要素相互配合提供了一个强大的测试框架帮助开发者编写、组织和执行单元测试以确保代码的质量和稳定性。 三、断言Assertions 1. 定义和作用 断言是用于验证测试结果是否符合预期的语句。在测试用例中通过断言来检查实际结果与预期结果是否一致。如果断言失败测试用例将被标记为失败。断言可以帮助开发者快速发现代码中的错误提高代码的质量和可靠性。 2. 常见的断言方法 例如 import unittestclass MyTest(unittest.TestCase):def test_equal(self):self.assertEqual(2 2, 4)def test_not_equal(self):self.assertNotEqual(2 2, 5)def test_true(self):self.assertTrue(2 3)def test_false(self):self.assertFalse(2 3) assertEqual(a, b)断言 a 和 b 相等。assertNotEqual(a, b)断言 a 和 b 不相等。assertTrue(x)断言 x 为 True。assertFalse(x)断言 x 为 False。assertIs(a, b)断言 a 和 b 是同一个对象。assertIsNot(a, b)断言 a 和 b 不是同一个对象。assertIsNone(x)断言 x 是 None。assertIsNotNone(x)断言 x 不是 None。assertIn(a, b)断言 a 在 b 中。assertNotIn(a, b)断言 a 不在 b 中。 四、参数化Parameterization 1. 定义和作用 参数化测试是一种将相同的测试逻辑应用于不同的输入数据的技术。通过参数化可以减少重复的测试代码提高测试的效率和覆盖度。参数化测试可以使用不同的输入数据来验证代码的正确性从而发现更多的错误。 2. 实现方法 2.1. 使用 unittest.TestCase.subTest() 方法 使用 unittest.TestCase.subTest() 方法可以在一个测试方法中使用 subTest 方法来对不同的输入数据进行测试。每次调用 subTest 方法时都会执行相同的测试逻辑但使用不同的输入数据。 import unittestclass MyTest(unittest.TestCase):def test_addition(self):data [(2, 3, 5), (4, 5, 9), (6, 7, 13)]for a, b, expected in data:with self.subTest(aa, bb):self.assertEqual(a b, expected) 2.2. 使用第三方库 如 pytest 或 parameterized这些库提供了更强大的参数化测试功能可以更方便地实现参数化测试。安装第三方库 pip install parameterized导包from parameterized import parameterized代码示例 import unittest from parameterized import parameterizeddef add_numbers(a, b):return a bclass TestAddNumbers(unittest.TestCase):parameterized.expand([(1, 2, 3),(4, 5, 9),(10, -5, 5)])def test_add_numbers(self, a, b, expected_result):result add_numbers(a, b)self.assertEqual(result, expected_result)if __name__ __main__:unittest.main() 五、跳过Skipping 1. 定义和作用 有时候某些测试用例可能在特定的条件下不适合执行或者已知存在问题。在这种情况下可以使用跳过机制来跳过这些测试用例避免不必要的失败。跳过测试用例可以提高测试的效率并且可以在特定的情况下避免错误的报告。 2. 实现方法 例如 import unittestclass MyTest(unittest.TestCase):unittest.skip(This test is skipped for now.)def test_skipped_method(self):passunittest.skipIf(2 3, This test is skipped if 2 3.)def test_skipped_if_method(self):passunittest.skipUnless(2 3, This test is skipped unless 2 3.)def test_skipped_unless_method(self):pass 使用 unittest.skip(reason) 装饰器可以在测试方法上使用 skip 装饰器来跳过该测试用例。reason 参数是一个字符串用于说明跳过的原因。使用 unittest.skipIf(condition, reason) 装饰器可以根据特定的条件来跳过测试用例。如果 condition 为 True则跳过该测试用例。使用 unittest.skipUnless(condition, reason) 装饰器与 skipIf 相反只有当 condition 为 True 时才执行该测试用例。 六、生成 HTML 测试报告 1. 定义和作用 生成 HTML 测试报告可以将测试结果以更直观的形式展示出来方便开发者查看和分析测试结果。HTML 测试报告可以包含测试用例的名称、执行时间、结果状态等信息以及详细的错误信息和堆栈跟踪。 2. 实现方法 例如使用 HTMLTestRunner这里可能会出现兼容问题生成报告内容为空具体问题具体解决 import unittest import HTMLTestRunnerclass MyTest(unittest.TestCase):def test_method(self):self.assertEqual(2 2, 4)if __name__ __main__:suite unittest.TestLoader().loadTestsFromTestCase(MyTest)with open(test_report.html, wb) as f:runner HTMLTestRunner.HTMLTestRunner(streamf, titleTest Report, descriptionUnit Test Results)runner.run(suite) 参数说明 streamopen 函数打开的文件流 title[可选参数]为报告标题 description[可选参数]为报告描述信息比如操作系统、浏览器等版本 使用第三方库如 HTMLTestRunnerHTMLTestRunner 是一个用于生成 HTML 测试报告的第三方库。可以将测试用例的执行结果输出为 HTML 格式的报告。使用 unittest 的 TextTestRunner 并结合其他工具可以使用 TextTestRunner 来执行测试用例并将结果输出到一个文件中。然后可以使用其他工具将文本报告转换为 HTML 格式的报告。 总之unittest模块提供了丰富的功能来支持单元测试包括Fixture、断言、参数化、跳过和生成 HTML 测试报告等。这些功能可以帮助开发者提高代码的质量和可靠性并且可以更方便地进行测试和调试。
http://www.tj-hxxt.cn/news/135204.html

相关文章:

  • 雅江网站建设翰诺网站建设
  • 深圳做夜场做网站前端怎么在猪八戒网站接单做
  • 在线支付 网站模板python基础教程资料
  • 网站站长英语新网网站内部优化
  • 中国网站开发公司排名需要做网站的企业
  • 做爰动态视频网站网站做seo外链
  • 南宁住房建设部网站北京网站优化推广公司
  • 阿里云服务器在哪里放着济南网络优化哪家专业
  • 佛山网站设计模板网站须知
  • 网站建设移交确认书安徽六安市地图
  • 云浮市哪有做网站的英文自助建站
  • 文化局网站建设方案公司注册地址租赁
  • 绿色门业宽屏网站模板 破解投票网站建设
  • 网站程序开发费用php做网站用什么开发工具
  • 手机移动端网站网站用的什么字体
  • 网站模板安装教程成都住建局官网智慧工地
  • 怎么查看网站域名北京网线多少钱一年
  • 湖南营销网站建设联系方式wordpress页面数据库
  • 网站设置二级域名如何提高用户和网站的互动性
  • 网站建设成都哪家公司好wordpress 函数 文件
  • 联盟网站做任务网站开发哈尔滨网站开发公司电话
  • 上海自助建网站电子商务营销方法
  • 百度怎么推广自己的信息关键词优化价格
  • 门户网站建站方案安卓app定制开发公司
  • 公司网站建设实施方案怎么优化网站源码关键词
  • 爱网站大全湖南昌正建设有限公司网站
  • 阿里巴巴网站详情页怎么做企业做网站需要注意什么
  • 网站建设汽车后市场解决方案优品wordpress
  • 广告公司网站设计方案手机网站设计尺寸
  • 做游戏ppt下载网站有哪些内容中山模板建站公司