У меня есть проект тестирования модуля для моего приложения с использованием структуры DUnit. Этот проект имеет блок, окруженный $IFDEF
, для вывода результатов теста в xml-файл вместо gui или только командной строки. Определение XML_OUTPUT включено путем переключения конфигурации сборки.Почему «использование единицы» исчезает, когда у меня появился новый блок?
program DelphiCodeToDoc_Tests;
uses
TestFramework,
TextTestRunner,
Sysutils,
Forms,
GUITestRunner,
{$IFDEF XML_OUTPUT}
XmlTestRunner2 in 'DUnit_addon\XmlTestRunner2.pas',
{$ENDIF}
DCTDSetupTests in 'IntegrationTests\DCTDSetupTests.pas',
...
Это прекрасно работает. Проблема начинается с , когда я добавляю новое устройство к этому проекту из IDE (новый блок с «Файл> Создать> Единица»).
Испытательный проект сейчас:
uses
TestFramework,
TextTestRunner,
Sysutils,
Forms,
GUITestRunner,
DCTDSetupTests in 'IntegrationTests\DCTDSetupTests.pas',
...
MyNewUnit in 'IntegrationTests\MyNewUnit.pas';
Как вы видите, тест XML_OUTPUT исчез ... Каждый раз, когда я добавляю блок, Delphi IDE удаляет этот тест.
Знаете ли вы, почему и как я могу избежать этого?
Поскольку у 'XmlTestRunner2' нет кода инициализации, а не на единичных тестовых файлах, я могу определенно добавить этого слушателя в список использования. Он будет связан только при вызове позже, в зависимости от конфигурации сборки. ** Итак, Маркус, так решил мою проблему! ** В другой ситуации я бы применил метод 'proxy unit' от' gabr'. – TridenT