AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.05.2021, 12:30   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Да, это понятно. Однако клиентские настройки создаются с нуля, и с Contoso имеет совсем мало общего. Стандартный ATL не найдет даже группы номенклатуры (точнее, в особенности группу номенклатуры). А еще есть проблемы локализации. В России все на русском будет, и все стандартные тесты Ивана оказываются применимы только к компании USMF.

Для клиентов придуман RSAT, а не ATL. Впрочем, RSAT тоже едва ли применяется на практике, поскольку невозможно продать. К примеру, Майкрософт не применяет RSAT на проектах.

Последний раз редактировалось EVGL; 25.05.2021 в 12:33.
Старый 25.05.2021, 13:10   #2  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 483 (17) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от EVGL Посмотреть сообщение
Да, это понятно. Однако клиентские настройки создаются с нуля, и с Contoso имеет совсем мало общего. Стандартный ATL не найдет даже группы номенклатуры (точнее, в особенности группу номенклатуры). А еще есть проблемы локализации. В России все на русском будет, и все стандартные тесты Ивана оказываются применимы только к компании USMF.
Мы не используем Contoso данные для наших тестов. Да, в некоторых тестовых примерах (ReturnOrderSampleTest) видно, что нужна компания USMF, но тот же SalesOrderSampleTest создает заказ на продажу и разносит накладную/счет-фактуру с нуля. Я так понимаю, всё можно тестировать без привязки к определенной компании, просто тесты будут медленнее. Из опыта, каждый новый юнит-тест класс минуту-две запускается и создает данные, каждый новый тест-метод - это 5..10 секунд. Грубо говоря, класс с десятком методов работает минуты 3..4. У меня больше времени ушло бы на запуск клиента и открытие первой формы на "холодной" системе.

В майкрософтовских примерах, кстати, используется перекрытый setup() метод. Это не очень хорошо для производительности. Лучше использовать setupTestCase() в паре с атрибутом SysTestCaseUseSingleInstanceAttribute. Тогда все данные создаются один раз для всех методов класса.

По поводу локализации - есть атрибут SysTestCaseCountryRegionDependencyAttribute.

Русские названия или нерусские - не должно влиять, если тестируется код, а не названия.
За это сообщение автора поблагодарили: Logger (1).
Старый 25.05.2021, 13:24   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
В майкрософтовских примерах, кстати, используется перекрытый setup() метод. Это не очень хорошо для производительности.
но очень хорошо для изолированности
если в тестируемый код изменяет исходные данные в качестве побочного эффекта...

Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Лучше использовать setupTestCase() в паре с атрибутом SysTestCaseUseSingleInstanceAttribute. Тогда все данные создаются один раз для всех методов класса.
не всегда.
а когда не знаешь, есть ли там побочные эффекты, то изолированность - не такая уж требовательная штука.
__________________
полезное на axForum, github, vk, coub.
Старый 25.05.2021, 13:34   #4  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 483 (17) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от mazzy Посмотреть сообщение
изолированность
Ну, теперь ведь используются SQL SavePoints, которые якобы справляются даже с падением АОСа и неожиданными исключениями? И побочные эффекты исключены?

См. диаграмму здесь, на странице 14.
Старый 25.05.2021, 13:46   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Ну, теперь ведь используются SQL SavePoints
они же не сохраняют и не восстанавливают состояние классов в памяти вроде.
__________________
полезное на axForum, github, vk, coub.
Старый 25.05.2021, 13:52   #6  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 483 (17) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от mazzy Посмотреть сообщение
они же не сохраняют и не восстанавливают состояние классов в памяти вроде.
Я имел в виду создание данных, необходимых для той же разноски счета-фактуры. Чтобы главная книга и прочее не создавались с нуля для каждого тест-метода. Если есть какие-то сценарии с классами в памяти, нужно смотреть.

Но в нашем случае проблем не было, и тесты стали "пробегать" за 19 минут вместо 25, когда мы перешли с setup на setupTestCase.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: [Development tutorial] Sample test + tips for using ATL (Acceptance Test Library) to implement tests in Warehouse management Blog bot DAX Blogs 0 21.05.2019 02:53
Kashperuk Ivan: Development tutorial: SysExtension framework with SysExtensionIAttribute and an Instantiation strategy Blog bot DAX Blogs 0 01.04.2017 02:17
Kashperuk Ivan: Development tutorial: SysExtension framework in factory methods where the constructor requires one or more arguments Blog bot DAX Blogs 4 19.03.2017 23:56
Kashperuk Ivan: Development tutorial: Extensible base enumerations in Microsoft Dynamics AX 7 Blog bot DAX Blogs 0 27.09.2016 00:19
NAV Team: Test Automation and Test Data Blog bot Dynamics CRM: Blogs 0 01.10.2010 12:56
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:17.