odoo 14 python 单元测试步骤
# odoo 14 python 单元测试步骤 # 一.在模块根目录创建tests目录 # 二.在tests目录下创建__init__.py文件 # 三.继承TransactionCase(SingleTransactionCase、SavepointCase)类 # 四.实现setUp(self, *args, **kwargs)方法 # 五.以test_前缀为方法名,就是你的测试用例. # 在测试用例中调用self.assertEqual方法来断言你的测试用例是否成功执行 # 六.TransactionCase、SingleTransactionCase、SavepointCase继承这三个不同的类,调用测试用例的情况都不一样 # TransactionCase: # 1.每一个测试用例是在单独的事务中运行的。 # 2.一旦测试用例方法运行成功,事务将自动回滚。 # 3.setUp方法在每次自动调用我们测试用例前都会调用一次,也就是有多少个测试用例就调用多少次setUp。 # SingleTransactionCase: # 1.所有测试用例都在同一个事务中执行。 # 2.因此从一个测试用例中产生的数据可以在另一个测试用例中使用。 # 3.事务从第一个测试用例开始,到最后一个测试用例结束时回滚。 # SavepointCase: # 1.测试方法运行在回滚的保存点中,而不是将所有的测试用例都放在一个事务中。 # 2.通过只生成一次测试数据来提高它们的速度。 # 3.这里,需要使用setUpClass()方法来生成初始化测试数据。 # 七.对测试类别进行标记. # 1.标记可以决定执行测试用例是在安装模块前还是在安装模块后执行。 # 2.或者你还可以自定义标签。 # 3.运行的时候你可以指定标记执行测试用例 # 4.标准标记有: # standard(默认就有):默认会指定执行该标记的测试用例 # at_install(默认就有):安装模块后立马执行测试用例 # post_install:在所有模块安装完成后再执行测试用例 # 5.删除默认标记:在标记前面加-减号就代表删除该默认标记 # 八.运行测试用例:./odoo‐bin ‐c server.conf ‐i my_library ‐‐test‐tags=my_library # 例子: from odoo.tests.common import TransactionCase, tagged @tagged('-at_install', 'post_install') class TestBookState(TransactionCase): def setUp(self, *args, **kwargs): super(TestBookState, self).setUp(*args, **kwargs) self.test_book = self.env['library.book'].create({'name': 'Book 1'}) def test_button_availabel(self): self.test_book.make_available() self.assertEqual(self.test_book.state, 'available', 'Book state should be changed to available') def test_button_lost(self): self.test_book.make_lost() self.assertEqual(self.test_book.state, 'lost', 'Book state should be changed to lost')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?