Как добавить префикс к маркеру Ant srcfile в задаче применения? - PullRequest
2 голосов
/ 19 августа 2011

С учетом следующей задачи муравья:

    <apply executable="${mstest}" addsourcefile="false">
        <arg value="/resultsfile:TestResults.trx" />
        <arg value="/testsettings:ReleaseCodeCoverage.testsettings" />
        <arg value="/detail:errormessage" />
        <srcfile />
        <fileset dir="bin/${buildType}">
            <patternset>
                <include name="*Tests.dll" />
            </patternset>
        </fileset>
    </apply>

Как применить префикс /TestContainer: к содержимому <srcfile />?

MSTest разделяет имена переключателей точкой с запятой, а не пробелом, поэтому я не могу просто добавить его как <arg value="/TestContainer">. Я также попробовал <srcfile prefix="/TestContainer:" /> как предложено здесь , но это не поддерживается в моей версии (1.7).

1 Ответ

2 голосов
/ 19 августа 2011

Это немного обманывает, но вы могли бы адаптировать его к вашему случаю.Задача apply имеет вложенный элемент targetfile, который можно использовать так же, как и srcfile - при необходимости помещая между аргументами команды.Значение targetfile получено из srcfile с использованием элемента mapper.Таким образом, вы можете прикрепить префиксы.Возможно, что-то вроде этого:

<apply executable="${mstest}" addsourcefile="false" relative="true">
    <arg value="/resultsfile:TestResults.trx" />
    <arg value="/testsettings:ReleaseCodeCoverage.testsettings" />
    <arg value="/detail:errormessage" />
    <targetfile/>
    <fileset dir="bin/${buildType}">
        <patternset>
            <include name="*Tests.dll" />
        </patternset>
    </fileset>
    <mapper type="regexp" from="(.*)" to="/TestContainer:bin/${buildType}/\1" />
</apply>

Обратите внимание на использование атрибута relative, в противном случае путь будет иметь префикс перед целевым именем файла.

...