Как вы запускаете модульные тесты OpenERP yaml

Я пытаюсь запустить модульные тесты на моем модуле 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.

Спасибо всем за ответы и помощь!


person TimoSolo    schedule 22.01.2013    source источник


Ответы (4)


Это то, что я пробовал. Кажется, это работает для меня:

!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!
person nay    schedule 04.02.2013
comment
до сих пор нет радости :( Я использовал параметр --test-file, и из журнала видно, что он запускал тест дважды (один раз для инициализации и один раз для тестового файла), но ни одного неудачного теста и ничего в тесте -report-directory... должно быть, что-то не так с моими тестами, или, может быть, мне следует обновить openerp, потому что это должно работать. - person TimoSolo; 05.02.2013
comment
Я присудил награду за этот ответ, потому что, хотя он все еще не может заставить его работать, он является наиболее полным. Спасибо за вашу помощь - person TimoSolo; 05.02.2013
comment
когда вы говорите, что у меня работает - где вы увидели неудачное сообщение? в логах сервера? - person TimoSolo; 05.02.2013
comment
Какую версию OpenERP вы используете? У меня тоже это тестирует 2 раза. Я обновил свой ответ, чтобы вы могли видеть журналы, которые я получаю - person nay; 05.02.2013
comment
Я использую версию 6.1, я вижу, что ваша работает правильно. Я, должно быть, что-то упустил, спасибо за отзыв. - person TimoSolo; 05.02.2013
comment
Я использую версию 7.0. Попробуйте обновить и дайте мне знать, как это работает для вас - person nay; 06.02.2013

Глядя на документы (например, здесь и здесь), я не вижу ничего явно неправильного в вашем коде.

Однако я не знаком с --log-level=test. Может, попробовать запустить его с флагами -v, --debug или --log-level=debug вместо --log-level=test? Вам также может понадобиться использовать варианты верхнего регистра для аргумента --log-level, т. е. --log-level=DEBUG.

test определенно не является одним из стандартных модулей ведения журналов Python. href="http://docs.python.org/2/howto/logging.html#logging-basic-tutorial" rel="nofollow noreferrer">уровни ведения журнала, и хотя я не могу исключить возможность из них добавление пользовательского уровня журнала, Я не думаю, что это так.

Возможно, также стоит попытаться удалить строку obj = self.browse(cr, uid, ref("HP001")) на всякий случай.

person m01    schedule 04.02.2013
comment
согласно документам: --log-level=LOG_LEVEL указать уровень ведения журнала. Допустимые значения: ['info', 'debug_rpc', 'warn', 'test', 'critical', 'debug_sql', 'error', 'debug', 'debug_rpc_answer', 'notset'] и: --test- report-directory=TEST_REPORT_DIRECTORY Если установлено, образцы всех отчетов будут сохранены в этом каталоге. пробовал оба и не повезло - person TimoSolo; 04.02.2013

Попробуйте ввести следующий путь на своем терминале при запуске сервера.

./openerp-server --addons-path=<..Path>...--тест-включить

: Включить YAML и модульные тесты.

./openerp-server --addons-path=<..Path>... -- тестовая фиксация

: Зафиксировать изменения базы данных, выполненные тестами YAML или XML.

person Vedang    schedule 04.02.2013
comment
ошибка: нет такой опции: --test-enable --test-commit не имеет никакого эффекта, из документов я предполагаю, что он используется для фиксации изменений БД, сделанных тестом, иначе они откатываются - person TimoSolo; 04.02.2013
comment
если вы работаете над V7, то следуйте приведенному выше варианту, который я опубликовал вчера. Но если вы работаете над 6.1, то ...... использовали эту команду ./openerp-server.py --addons-path=../../addons -u ‹имя модуля› -d ‹имя базы данных› - - тестовая фиксация - person Vedang; 05.02.2013
comment
@ Тимоти: когда вы запускаете свой сервер или обновляете модуль, загружается ли ваш файл .yml с другими файлами? пожалуйста, посмотрите сразу. - person Vedang; 05.02.2013
comment
Я попробовал ваше предложение. файл yml загружается - он показывает TEST testdb openerp.tools.yaml_import: я тестирую тесты, но не показывает ни одного неудачного (или пройденного) теста - person TimoSolo; 05.02.2013
comment
@ Тимоти, если ваш тестовый пример работает без ошибок, проверьте свою систему. демонстрационные данные будут для соответствующей модели, для которой вы пишете. - person Vedang; 06.02.2013

Попробуйте это в своем терминале, это сработает.

./openerp-server --addons-path=<..Path> --log-level=test --test-enable

Надеюсь, что это поможет вам.

person Heroic    schedule 04.02.2013
comment
какую версию вы используете? Я получаю сообщение об ошибке: нет такой опции: --test-enable.. Я использую v6.1 - person TimoSolo; 04.02.2013