我正在尝试选择包含相应配置文件的测试dll列表。
MyTest.Tests.dll
MyTest.Tests.config
我必须使用createItem,因为dlls在脚本加载时不可用
<CreateItem Include="$(AssemblyFolder)\*.Tests.dll"
Condition="???"
<Output TaskParameter="Include" ItemName="TestBinariesWithConfig"/>
</CreateItem>有没有我可以使用的条件,或者这是错误的方法?
谢谢
Mac
编辑:
为了清楚起见,我需要构造一个xUnit.Net项目文件。我之所以需要这样做,是因为我正在通过nCover通过xUnit.Console运行器运行测试(不要问!)但最重要的是,我只能使用项目文件。我遇到的问题是,当我有一个带有相关.config文件的测试dll时。如果没有配置文件,测试运行器将失败。
这意味着我需要有条件地在测试项目文件中添加一个额外的属性(config- file )。
项目模板文件:
<?xml version="1.0" encoding="utf-8"?>
<xunit>
<assemblies>
<!-- SAMPLE <assembly filename="Tests.dll" shadow-copy="false" config-file="Tests.dll.config" /> -->
<!-- @TARGETS@ -->
</assemblies>
</xunit>没有配置文件的测试dlls的FileUpdate任务。
<FileUpdate
Files="$(AssemblyFolder)\$(XUnitProjectFileName)"
Regex="<!-- @TARGETS@ -->"
ReplacementText="<!-- @TARGETS@ -->%0D%0A<assembly filename='$(AssemblyFolder)\%(TestBinaries.FileName)%(TestBinaries.Extension)' shadow-copy='false' />"
/>因此,我需要一种方法,根据测试dll是否有相应的配置文件,有条件地在FileUpdate任务中添加额外的属性。
发布于 2010-04-12 18:55:56
您可以只使用MSBuild任务输出作为CreateItem任务的源。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectReferences Include="*.*proj" />
</ItemGroup>
<Target Name="BuildMyProjects">
<MSBuild
Projects="@(ProjectReferences)"
Targets="Build">
<Output
TaskParameter="TargetOutputs"
ItemName="AssembliesBuiltByChildProjects" />
</MSBuild>
</Target>
<Target Name="AddConfigMetadata" DependsOnTargets="BuildMyProjects">
<CreateItem
Include="@(AssembliesBuiltByChildProjects)"
AdditionalMetadata="config-file=%(Identity).config">
<Output
TaskParameter="Include"
ItemName="MySourceItemsWithMetadata" />
</CreateItem>
</Target>
<Target Name="WhatEverYouLikeToDo" DependsOnTargets="AddConfigMetadata">
<Message Text="%(MySourceItemsWithMetadata.config-file)" />
</Target>
</Project>发布于 2010-04-11 21:23:38
你的问题描述对我来说不是很清楚,但是你的.Tests.dll应该总是可用的,因为你应该在测试之前先构建你的项目。只要构建了项目,就可以运行CreateItem任务。CreateItem是检索.dll的一个很好的方法,但是您不需要为它设置条件。
因此,在构建文件中,您应该具有如下内容:-将创建的构建项目/解决方案-> .dll-执行CreateItem -对项目执行某些操作
有了这个awnser,我假设你正在尝试自动化你的测试?
https://stackoverflow.com/questions/2617089
复制相似问题