YAML тест в OpenERP
Перевод оригинальной статьи
Что такое Yaml?
YAML — человечески-удобочитаемый формат последовательность данных, который берет концепцию от языков программирования, таких как C,Perl, и Питон, и идеи от XML и формата данных электронной почты… YAML доступен как формат данных OpenERP начиная от OpenERP 6.0, и имеет следующие преимущества:
— Дружественный пользовательский Формат как альтернатива текущему формату данных XML.
— Та же система, для загрузки данных или тестирования, интегрированная в модули.
— Построенный в OpenERP так, чтобы Вы могли разрабатыват сложные тесты Питона.
— Более простой для не разработчика, чтобы написать функциональные тесты.
Как написать Yaml тест?
Эта информация написана на основе недавнего опыта, у меня был в письменной форме тест YAML на OpenERP. Этот способ тестирования может быть наилучшим подходом, чтобы сделать автоматизированные тесты в OpenERP.
Написание Yaml Теста состоит из двух фаз. В первой фазе человек с сильным знанием области (не должен быть разработчик) пишет необходимые функциональные тесты на Английском языке. Во второй фазе разработчик преобразовывает эти тесты к коду.
Сценарий Теста описывается для того, чтобы создать мастер (список действий). Это можно попробовать в любых пользовательских модулях или функциональностях. Некоторые тесты уже написаны в существующем коде OpenERP, и документация также доступна.
Обычный список действий может быть написан не разработчиком следующим образом:
Затем разработчик добавляет фактический коде, чтобы выполнить эти тесты следующим образом:
Сохраните этот файл с расширением.yml например budget_creation_wizard.yml.
Как запустить тест?
Добавляем в __ openerp __. файл py название тестового файла включая его относительный путь в тестовом атрибуте. Таким образом,
Запустите openerp сервер со следующего параметра — log-level=test. Это зарегистрирует детали сделанного теста. Просматривая лог мы можем найти, какие были выполнены, какие переданы и какие ошибочные.
В файле системного журнала мы можем видеть следующее записи:
Ограничения Тестирования YAML
Так как тестирование YAML – тестирование на стороне сервера, есть ограничение в тестировании вида модели. Даже при том что мы не можем проверить вид полностью есть некоторые функции вида, которые мы можем проверить:
— Когда мы изменяем значение определенного поля другое поле (и) в зависимости от этого поля изменяется. Этот сценарий может быть смоделирован при написания теста, который вызывает on change функцию в соответствующей модели.
— Проверка представления вида. Даже при том, что тест не гарантирует, что вид будет предоставлен правильно, но по крайней мере мы можем удостовериться, что у вида нет никакой ошибки. Это может быть достигнуто при написании теста, который вызывает fields_view_get функцию соответствующей модели.
— Нажатие кнопки. Нажатие кнопки может быть смоделирован при написании тестов, который вызывает основную функцию, к которой обращается кнопка.
Заключение
С изрядным количеством хороших тестов мы можем увериться в качестве кода и любых модификации существующих функций, или добавление новых.
Некоторые полезные ссылки
1. doc.openerp.com/v6.0/developer/5_16_data_serialization/
2. doc.openerp.com/v6.0/contribute/15_guidelines/coding_guidelines_testing.html
3. fptiny.blogspot.com/2010/09/new-automated-test-framework-for.html
4. fptiny.blogspot.com/2010/09/improved-automated-tests-for-openerp.html
Что такое Yaml?
YAML — человечески-удобочитаемый формат последовательность данных, который берет концепцию от языков программирования, таких как C,Perl, и Питон, и идеи от XML и формата данных электронной почты… YAML доступен как формат данных OpenERP начиная от OpenERP 6.0, и имеет следующие преимущества:
— Дружественный пользовательский Формат как альтернатива текущему формату данных XML.
— Та же система, для загрузки данных или тестирования, интегрированная в модули.
— Построенный в OpenERP так, чтобы Вы могли разрабатыват сложные тесты Питона.
— Более простой для не разработчика, чтобы написать функциональные тесты.
Как написать Yaml тест?
Эта информация написана на основе недавнего опыта, у меня был в письменной форме тест YAML на OpenERP. Этот способ тестирования может быть наилучшим подходом, чтобы сделать автоматизированные тесты в OpenERP.
Написание Yaml Теста состоит из двух фаз. В первой фазе человек с сильным знанием области (не должен быть разработчик) пишет необходимые функциональные тесты на Английском языке. Во второй фазе разработчик преобразовывает эти тесты к коду.
Сценарий Теста описывается для того, чтобы создать мастер (список действий). Это можно попробовать в любых пользовательских модулях или функциональностях. Некоторые тесты уже написаны в существующем коде OpenERP, и документация также доступна.
Обычный список действий может быть написан не разработчиком следующим образом:
1. -
2. To test the budget creation wizard's working I create department, program, and activity and perform budget creation using these.
3. -
4 I create a department named Test Department 1
5. -
6. I create a program named Test Program 1 under Test Department 1
7. -
8. I create an activity named Test Activity 1 under Test Program 1
9. -
10. I select Test Department 1, Test Program 1, Test Activity 1 and 1991-1995 budget period
11. -
12. I create a budget using the previously selected values.
13. -
14. I test that the state of the budget is Draft.
Затем разработчик добавляет фактический коде, чтобы выполнить эти тесты следующим образом:
1. -
2. To test the budget creation wizard's working I create department, program, and activity and perform budget creation using these.
3. -
4. I create a department named Test Department 1
5. -
6. !record {model: zb.department, id: department_id_0}:
7. name: "Test Department 1"
8. -
9. I create a program named Test Program 1 under Test Department 1
10. -
11. !record {model: zb.program, id: program_id_0_0}:
12. name: "Test Program 1"
13. department_id: department_id_0
14. -
15. I create an activity named Test Activity 1 under Test Program 1
16. -
17. !record {model: zb.activity, id: activity_id_0_0_0}:
18. name: "Test Activity 1"
19. program_id: program_id_0_0
20. -
21. I select Test Department 1, Test Program 1, Test Activity 1 and 1991-1995 budget period
22. -
23. !record {model: zb.budget.target, id: budget_wizard_id}:
24. department_id: department_id_0
25. program_id: program_id_0_0
26. activity_id: activity_id_0_0_0
27. budget_period_id: budget_period_id_0
28. -
29. I create a budget using the previously selected values.
30. -
31. !python {model: zb.budget.target}: |
32. result = self.create_budget(cr, uid, [ref('budget_wizard_id')], {})
33. assert result, 'The budget was not created.'
34. -
35. I test that the state of the budget is Draft.
36. -
37. !python {model: zb.budget}: |
38. department_id = ref("department_id_0")
39. program_id = ref("program_id_0_0")
40. activity_id = ref("activity_id_0_0_0")
41. budget_period_id = ref("budget_period_id_0")
42. ids = self.search(cr, uid, [('department_id', '=', department_id), ('program_id', '=', program_id), ('activity_id', '=', activity_id), ('budget_period_id', '=', budget_period_id)])
43. assert len(ids) == 1, 'There should only be one budget for a combination of a particular department, program, activity and budget period.'
44. budget_obj = self.browse(cr, uid, ids, {})[0]
45. assert budget_obj.budget_state == 'draft', 'The newly created budget must be in Draft.'
Сохраните этот файл с расширением.yml например budget_creation_wizard.yml.
Как запустить тест?
Добавляем в __ openerp __. файл py название тестового файла включая его относительный путь в тестовом атрибуте. Таким образом,
1. 'test' : ['test/budget_creation_wizard.yml']
Запустите openerp сервер со следующего параметра — log-level=test. Это зарегистрирует детали сделанного теста. Просматривая лог мы можем найти, какие были выполнены, какие переданы и какие ошибочные.
1. ./openerp-server.py --log-level=test
В файле системного журнала мы можем видеть следующее записи:
1. TEST:tests.budget_performance:To test the budget creation wizard's working I create department, program, and activity and perform budget creation using these.
2. TEST:tests.budget_performance:I create a department named Test Department 1.
3. TEST:tests.budget_performance:I create a program named Test Program 1 under Test Department 1.
4. TEST:tests.budget_performance:I create an activity named Test Activity 1 under Test Program 1.
5. TEST:tests.budget_performance:I select Test Department 1, Test Program 1, Test Activity 1 and 1991-1995 budget period.
6. TEST:tests.budget_performance:I create a budget using the previously selected values.
7. TEST:tests.budget_performance:I test that the state of the budget is Draft.
Ограничения Тестирования YAML
Так как тестирование YAML – тестирование на стороне сервера, есть ограничение в тестировании вида модели. Даже при том что мы не можем проверить вид полностью есть некоторые функции вида, которые мы можем проверить:
— Когда мы изменяем значение определенного поля другое поле (и) в зависимости от этого поля изменяется. Этот сценарий может быть смоделирован при написания теста, который вызывает on change функцию в соответствующей модели.
— Проверка представления вида. Даже при том, что тест не гарантирует, что вид будет предоставлен правильно, но по крайней мере мы можем удостовериться, что у вида нет никакой ошибки. Это может быть достигнуто при написании теста, который вызывает fields_view_get функцию соответствующей модели.
— Нажатие кнопки. Нажатие кнопки может быть смоделирован при написании тестов, который вызывает основную функцию, к которой обращается кнопка.
Заключение
С изрядным количеством хороших тестов мы можем увериться в качестве кода и любых модификации существующих функций, или добавление новых.
Некоторые полезные ссылки
1. doc.openerp.com/v6.0/developer/5_16_data_serialization/
2. doc.openerp.com/v6.0/contribute/15_guidelines/coding_guidelines_testing.html
3. fptiny.blogspot.com/2010/09/new-automated-test-framework-for.html
4. fptiny.blogspot.com/2010/09/improved-automated-tests-for-openerp.html
0 комментариев