Odoo开发指南之 单元测试

Unittest单元测试
   unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天就总结下如何使用unittest单元测试框架来进行odoo的自动化测试。
Odoo开发指南之 单元测试

unittest工作原理:
unittest中最核心的四部分是:TestCase,TestSuite,TestRunner,TestFixture
(1)一个TestCase的实例就是一个测试用例。测试用例就是指一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。
(2)而多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。
(3)TestLoader是用来加载TestCase到TestSuite中的。
(4)TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法
(5)测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
(6)unittest提供了很多内置的判断方法,常用断言如:
判断返回值相等:self.assertEquals(abs(-1), 1)
抛出KeyError异常:with self.assertRaises(KeyError)
抛出AttributeError异常:with self.assertRaises(AttributeError)

接下来,就到了代码演示环节。let’s go

Odoo开发指南之 单元测试
1.安装unittest包,如果有直接引入
Odoo开发指南之 单元测试
2.在模块中定义tests子包,测试文件必须以test_开头,不以test开头的方法不会被认为是测试方法,测试时不会被执行。
Odoo开发指南之 单元测试
3.编写测试用例
可以利用odoo现有的模块和工具,odoo.tests.common.TransactionCase进行编写。
odoo.tests.common.at_install(flag)
该标志是一个布尔值,指定测试是否应该 (True)或不应该(False) 在模块安装期间运行;默认情况下,在安装模块之后,开始安装下一个模块之前运行测试
odoo.tests.common.post_install(flag)
该标志是一个布尔值,指定测试是否应该在一组模块安装之后运行。默认情况下,在安装当前安装集中的所有模块之后,不会运行测试。
setUp()
setUp()方法用于测试用例执行前的初始化工作。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器。
tearDown()
tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接。关闭浏览器。
(代码都是直接甩图片,不好意思)
Odoo开发指南之 单元测试
Odoo开发指南之 单元测试
在openerp.conf中添加参数变量:
Odoo开发指南之 单元测试
官方文档上说只需要添加参数变量就可以,但是测试时候没有效果,需要配置一下运行参数.

添加指定数据库:
Odoo开发指南之 单元测试
运行结果:

Odoo开发指南之 单元测试

相关文章:

  • 2022-12-23
  • 2021-10-04
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-25
  • 2021-06-13
  • 2021-04-19
  • 2021-04-26
  • 2021-06-09
  • 2021-09-04
相关资源
相似解决方案