为程序集运行XUnit.net 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

我在使用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.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,这仅在为多个程序集运行时才出现。