2013-11-21 3 views
2

У меня проблема с отключением некоторых строк кода для целей тестирования.Отключить некоторые строки кода для модульного теста

У меня есть 2 цели - 1-й мой продукт, второй мой целевой тест KIF. В тестовой мишени KIF, макро определяется как KIF = 1 В целевом продукте, макро определяются как КИФ = 0

Затем код был включен в следующем:

#ifndef KIF 
.... some code..... 
#endif 

К сожалению, этот код не работать для любой цели.

Возможно, это происходит, потому что цель продукта установлена ​​в целевой зависимости для цели KIF?

Не могли бы вы помочь мне решить мою проблему?

ответ

1

Это было более легко, чем я могу себе представить. Перейдите в свой проект> Конфигурации и создайте новую конфигурацию, нажав на кнопку «+»> Дублировать конфигурацию отладки, затем вы можете создать новую переменную типа TESTING и определить ее только для вашей конфигурации. Следующим шагом будет включение в код #if и изменение конфигурации в вашей схеме.

#if TESTING 
{ 
...some code for testing needs... 
} 
#else 
{ 
...your regular code... 
} 
#endif 

В продукте> Схема> Схема редактирования> Измените конфигурацию конфигурации на свой собственный и проверьте ее.

1

Это работает для меня для UnitTest как макрос препроцессора предварительной сборки.

#ifdef TEST 
#endif 

Если вы хотите пользовательские переменные для пользовательских сборок сделать:

  1. Перейти к цели/сборки Настройки/препроцессора Макросы
  2. Добавить требуемую переменную: MYTESTVARIABLE
  3. Теперь в коде вы можете использовать это

.

#ifdef MYTESTVARIABLE 
//some code here 
#endif 
+1

Я пробовал это, но он не работает для меня (я пробовал оба пути) – user2738882

 Смежные вопросы

  • Нет связанных вопросов^_^