测试dll的MSBuild模式匹配

时间:2012-08-10 10:31:40

标签: msbuild

我有一个CreateItem任务来匹配单元测试程序集:

<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test*.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem>

这个匹配的dll像:

  • Company.Product.Component1.Test.dll
  • Company.Product.Component2.UnitTests.dll
  • Company.Product.UnitTestFramework1.dll
  • Company.Product.UnitTestFramework2.dll

我的问题是如何更改匹配模式以仅选择单元测试(具有Test,Tests,UnitTest或UnitTests命名约定)但没有框架dll。

1 个答案:

答案 0 :(得分:1)

只需逐步添加Test.dll和Tests.dll。以下可以做你想要的:

<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 
<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Tests.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 

或者,您可以添加使用原始项目定义,然后删除与框架模式匹配的文件。 E.g:

<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test*.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 
<CreateItem Remove="*Framework*.dll" />