我正在尝试在我的openERP模块上运行单元测试,但无论我写什么,它都不会显示测试是否通过!有谁知道如何输出测试结果? (使用Windows OpenERP 6.1版)
我的YAML测试是:
-
I test the tests
-
!python {model: mymodelname}: |
assert False, "Testing False!"
assert True, "Testing True!"
我重新加载模块时的输出 openerp-server.exe --update mymodule --log-level = test -dtestdb 显示测试已运行但没有错误?!
... TEST testdb openerp.tools.yaml_import: I test the tests
我做错了什么?
编辑:------------------------------------------ ---------------------------
好吧,经过多次摆弄!python,我尝试了另一个测试:
-
I test that the state
-
!assert {model: mymodel, id: mymodel_id}:
- state == 'badstate'
这导致了预期的失败:
WARNING demo_61 openerp.tools.yaml_import: Assertion "NONAME" FAILED
test: state == 'badstate'
values: ! active == badstate
所以我猜我的语法有问题,可能会在版本7中按预期工作。
感谢大家的回答和帮助!
答案 0 :(得分:9)
这是我尝试过的。它似乎对我有用:
!python {model: sale.order}: |
assert True, "Testing True!"
assert False, "Testing False!"
(也许你忘了“|”字符)
然后:
bin/start_openerp --init=your_module_to_test -d your_testing_database --test-file=/absolute/path/to/your/testing_file.yml
您可能希望在以下之前创建测试数据库:
createdb mytestdb --encoding = unicode
希望它可以帮到你
更新:这是我的日志(我称我的测试文件为sale_order_line_test.yml)
ERROR mytestdb openerp.tools.yaml_import: AssertionError in Python code : Testing False!
mytestdb openerp.modules.loading: At least one test failed when loading the modules.
loading test file /path/to/module/test/sale_order_line_test.yml
AssertionError in Python code : Testing False!
答案 1 :(得分:4)
查看文档(例如here和here),我看不到任何明显错误的代码。
但是,我不熟悉--log-level=test
。也许尝试使用-v
,--debug
或--log-level=debug
标志而不是--log-level=test
运行它?您可能还需要尝试--log-level
参数的大写变体,即--log-level=DEBUG
。
test
肯定不是标准Python logging module的logging levels之一,虽然我不能排除它们adding a custom log level的可能性,但我不知道我认为就是这样。
尝试删除行obj = self.browse(cr, uid, ref("HP001"))
也是值得的,以防万一..
答案 2 :(得分:3)
尝试在启动服务器时在终端上键入以下路径。
./openerp-server --addons-path=<..Path>...
- 测试启用
:启用YAML和单元测试。
./openerp-server --addons-path=<..Path>...
- 测试提交
:提交由YAML或XML测试执行的数据库更改。
答案 3 :(得分:2)
在你的终端尝试这个功能。
./openerp-server --addons-path=<..Path> --log-level=test --test-enable
希望这会对你有帮助。