Я даже не уверен, правильно ли сформулирован мой вопрос ... но я постараюсь объяснить, с чем я сейчас борюсь. Я не очень опытен в этом, так что простите меня, если мои объяснения не самые лучшие .... и я также пытаюсь упростить мой сценарий сборки для целей этого вопроса, так что, если мне не хватает некоторых деталей, дайте знаю ...
Я изменяю скрипт сборки Nant для запуска некоторых модульных тестов. У меня есть разные цели для локально запускаемых тестов и тестов, которые будут выполняться в командном городе.
<target name="run-unit-tests">
<property name="test.executable" value="tools\nunit\nunit-console.exe"/>
<call target="do-unit-tests"/>
</target>
<target name="run-unit-tests-teamcity">
<property name="test.executable" value="${teamcity.dotnet.nunitlauncher}"/>
<call target="do-unit-tests"/>
</target>
в цели do-unit-tests Я установил, какие тестовые сборки запускаются, установив свойство и вызвав NCover для выполнения покрытия кода следующим образом:
<target name="do-unit-test">
<property name="test.assemblies" value="MyProject.dll">
<call target="do-unit-test-coverage" />
</target>
<target name="do-unit-test-coverage">
<ncover <!--snip -->
commandLineArgs="${test.args}"
<!--snip-->
</ncover>
</target>
Как вы можете видеть в части ncover, мне нужно свойство с именем "test.args" . Это свойство зависит от "test.assemblies"
т.е.: <property name="test.args" value="${test.assemblies} <!--snip -->" />
test.args нужно настроить по-разному между локальным модульным тестом и тестом в командном городе ... поэтому я пытаюсь выяснить, как его настроить.
если я помещаю свойство для test.args в "do-unit-test" после свойства "test.assemblies", я не могу указать один test.args, если do-unit-test вызывается run-unit- тесты и другое для run-unit-tests-teamcity.
Я пытался сделать что-то вроде следующего в "do-unit-test":
<if test="${target::exists('run-unit-tests-teamcity')}">
<property name="test.args" value="..." />
</if>
но очевидно, что это не работает, потому что цель всегда будет существовать.
Затем я хотел бы проверить, была ли моя текущая цель do-unit-test вызвана run-unit-tests-teamcity
Возможно ли это? Я не вижу этого в документации Нанта? Так как его там нет, это либо означает, что это будет функция в будущем, либо я не понимаю, как это указано в сценарии сборки Nant.
Любая помощь будет оценена по этому вопросу.