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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2019, 18:35   #1  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,894 / 3799 (184) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ax2009: как получить Code Coverage для методов TableMap?
как получить Code Covarage для методов TableMap в ax2009?

такое ощущение, что SysCodeCoverage не может разобрать случаи когда вызываются методы табличных мапов. Хотя с остальными объектами работает нормально.

в классе потомке от SysTestCase переопределяю методы utilElementName и utilElementType { return UtilElementType::TableMap; }.

Может кто разбирался уже?
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 26.04.2019 в 18:37.
За это сообщение автора поблагодарили: Raven Melancholic (2).
Старый 08.05.2019, 07:02   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,783 / 962 (36) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Не пробовал раньше проверять TableMap, стало интересно, вот что сейчас получилось в результате быстрого простого эксперимента. Естественно, никакого теста не выполняется, только для проверки покрытия.
Эксперимент на TableMap 'AddressMap', код класса тестирования:
X++:
void new()
{
    ;

    super();

    elementName = 'AddressMap';
    elementType = UtilElementType::TableMap;
}
X++:
public void testAddressFormatId()
{
    ;

    AddressMap::addressFormatId('RU');
    this.assertEquals(1, 1, 'Бамс!!!');
}
X++:
public void testModifiedField()
{
    Address     address;
    AddressMap  addressMap;
    ;

    addressMap  = address;

    select firstOnly addressMap;

    addressMap.modifiedField(fieldNum(Common, RecId));
    this.assertEquals(1, 1, 'Бамс!!!');
}
По статическому методу addressFormatId покрытие есть, а методу экземпляра modifiedField - нет.
Начал разбираться, в SysCodeCoverage увидел подмену пути из ..Map в ..Table в методах checkTreeNode и modifyTreenode. Закомментировал эту подмену, результат стал точно противоположным:
По статическому методу addressFormatId покрытия нет, а методу экземпляра modifiedField - есть.
Пока понятно (видно в отладчике), что в SysCodeCoverage в переменной pathMap по TableMap для статических методов приходит путь Data Dictionary\Tables, а для методов экземпляра путь Data Dictionary\Maps.
Почему так, пока не разбирался.
За это сообщение автора поблагодарили: mazzy (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxmusings: Repost: Enabling X++ Code Coverage in Visual Studio and Automated Build Blog bot DAX Blogs 0 19.02.2019 23:18
goshoom: Custom rules for Code Upgrade Tool Blog bot DAX Blogs 0 15.12.2014 02:11
Pokluda: SysTest part VI.: Code coverage Blog bot DAX Blogs 0 08.03.2007 00:44
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:53.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.