为程序集运行XUnit.net msbuild任务时出错
我在使用MSBuild任务运行xunit.net任务时出错,如xunit wiki中所述: 我的MSBuild文件是:为程序集运行XUnit.net msbuild任务时出错,xunit.net,Xunit.net,我在使用MSBuild任务运行xunit.net任务时出错,如xunit wiki中所述: 我的MSBuild文件是: <Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask AssemblyFile="xunit.runner.msbuild.dll" TaskName="Xunit.Run
<Project
DefaultTargets="Test"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
AssemblyFile="xunit.runner.msbuild.dll"
TaskName="Xunit.Runner.MSBuild.xunit" />
<ItemGroup>
<TestAssemblies Include="..\**/*.tests.dll" />
</ItemGroup>
<Target Name="Test">
<xunit Assemblies="@(TestAssemblies)" xml="..\TestResults.xml" />
</Target>
</Project>
当我运行msbuild脚本时,生成将成功运行,并返回测试结果(测试计数、失败计数等)
但是,在显示结果后,我将消息发送到:
C:\ProgramFiles(x86)\Jenkins\jobs\My First Jenkins
Build\workspace\src\MyWeb App\Solution Items\xunit.msbuild”(默认值
目标)(1)->(测试目标)->C:\程序文件
(x86)\Jenkins\jobs\My First Jenkins Build\workspace\src\MyWe
bApp\Solution Items\xunit.msbuild(14,5):错误:
System.ArgumentException:找不到文件:C:\Program Files
(x86)\Jenkins\jobs\My First Jenkins Build\wor
kspace\src\MyWebApp\MyWebApp.Tests\obj\Debug\xunit.dll C:\Program
文件(x86)\Jenkins\jobs\My First Jenkins Build\workspace\src\MyWe
bApp\Solution Items\xunit.msbuild(14,5):错误:位于
exunit.ExecutorWrapper..c tor(字符串汇编文件名,字符串
configFilename,Boolean shadowCopy)C:\Program Files
(x86)\Jenkins\jobs\My First Jenkins Build\workspace\src\MyWe
bApp\Solution Items\xunit.msbuild(14,5):错误:位于
Xunit.Runner.MSBuild.Xunit.ExecuteAssembly(字符串汇编文件名,
字符串配置文件名,irunnerloge r记录器)
我不知道它为什么要查找xunit.dll,有人能解释一下吗?当我使用
而不是
时,它工作正常。我遇到的问题是我的TestAssemblies元素,将其更新为以下内容解决了问题:
<TestAssemblies Include="..\**\bin\*\*.Tests.dll" />
我想,我的预期“测试”dll中有其他内容正在被提取,这导致xunit查找xunit.dll。确切的消息总是有帮助的,但您正在构建的xunit.dll的特定版本需要与您的
*.tests.dll一起放在obj目录中。
(95%的人确信在xunit.runner.msbuild.dll
旁边需要一个)。正在阅读最后一部分…当您使用ILSpy查看时,您在xunit
任务impl上看到了哪些属性?感谢Ruben,我添加了完整的错误消息。使用ILSpy查看了它,但看不出它为什么需要xunit.dll,这仅在为多个程序集运行时才出现。