Отключение компиляции юнит-теста в Boost.Build - PullRequest
0 голосов
/ 26 февраля 2012

Boost.Build документация довольно лаконична, когда дело доходит до тестирования.

Все тесты в моем проекте определены с использованием правила unit-test.

Единственное свойство, упомянутое в документации, это testing.launcher, но оно может отключить выполнение тестов только при значении testing.launcher=true.

Как полностью отключить компиляцию unit-test правил? Я бы хотел сделать это временно, например, установив свойство из командной строки. Я не смог найти информацию о том, как это сделать, или справочную документацию для других testing.* свойств.

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Когда я прочитал большую часть документации Boost.Build и соответствующую часть ее кода , я не нашел способа временно отключить создание определенного правила или набора целей (например, путем сопоставления целей тестов срегулярное выражение).

Также стоит отметить, что unit-test было устарело в пользу новых правил тестирования: run, run-fail, compile, compile-fail, link, link-fail.

Теперь, вероятно, я собираюсь создать свое собственное правило , как в ответе @ GrafikRobot, но вместо того, чтобы делатьЦелевое явное Я сделаю правило пустым при наличии определенной функции .

1 голос
/ 27 февраля 2012

Если вы хотите отключить их по умолчанию?Вы можете сделать это, добавив «явный;»для каждого модульного теста.Если у вас много таких целей, вы можете сохранить некоторую печать и объявить правило, которое делает это за вас, плюс объявить юнит-тест, например:

rule explicit-unit-test ( target : source : properties * )
{
    unit-test $(target) : $(source) : $(properties) ;
    explicit $(target) ;
}

Если вы хотите что-то еще .. Я думаю, вам нужно лучшеобъясните свой вопрос, потому что я не могу думать о том, что еще вы могли бы хотеть.

0 голосов
/ 10 марта 2013

Я использую явные наборы тестов для этой цели, как в

explicit X ;
test-suite X
:
      [ run test1.cpp ]
      [ run test2.cpp ]
      [ run test3.cpp ]
      [ run test4.cpp ]
;

Вам нужно будет явно запросить выполнение тестов в наборе тестов X, используя

bjam X
...