如何在应用任务中为Ant的srcfile标记添加前缀?

时间:2011-08-19 02:03:49

标签: command-line ant mstest

给出以下ant任务:

    <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">附加。我也按照建议here尝试了<srcfile prefix="/TestContainer:" />,但我的版本(1.7)不支持此功能。

1 个答案:

答案 0 :(得分:2)

这有点作弊,但您可以根据自己的情况进行调整。 apply task有一个嵌套元素targetfile,可以像srcfile一样使用 - 放在需要的命令参数之间。 targetfile的值是使用mapper元素从srcfile派生的。所以你可以附上前缀。也许是这样的事情:

<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属性,否则路径会在目标'filename'前面加前缀。