我实际上正在尝试运行我通过 Odoo 文档创建的单元测试。
我已经像这样构建了我的模块:
module_test
- __init__.py
__openerp.py__
...
- tests
__init__.py
test_1.py
在“module_test/tests/init.py”内,我确实有“import test_1” 在“module_test/tests/test_1.py”内部,我确实有:“导入测试+我编写的测试场景。
然后我启动命令行来运行服务器,并添加: '-u module_test --log-level=test --test-enable' 更新模块并激活测试运行
shell 返回:“所有后测试均在 0.00 秒内进行,0 次查询”。 所以事实上,没有运行任何测试。
然后我添加了语法错误,因此服务器无法编译该文件,但 shell 返回了相同的句子。看起来该文件被忽略了,服务器甚至没有尝试编译我的文件...我不明白为什么?
我检查了一些 Odoo 源模块,例如“销售”模块。 我尝试运行销售测试,shell 返回与以前相同的值。 我在销售测试中添加了语法错误,shell 一次又一次返回相同的值。
有人知道这种意想不到的行为吗?
最佳答案
您应该尝试使用 post_install 装饰器来测试类:
示例:
from openerp.tests import common
@common.post_install(True)
class TestPost(common.TransactionCase):
def test_post_method(self):
response = self.env['my_module.my_model'].create_post('hello')
self.assertEqual(response['success'], True)
为了使测试在不更新模块的情况下执行得更快,您应该能够在不更新模块的情况下运行测试
-u module_test
如果你使用
--load=module_test
我不得不承认odoo测试文档真的很糟糕。我花了一周的时间才弄清楚如何在 odoo 中进行单元测试。
关于unit-testing - ODOO [V8] 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093747/