我正在尝试建立一个C#项目,以便在构建时运行xUnit测试,这样我就可以在持续集成中使用它们。我有一个常规项目,一个使用xUnit的类库测试项目和我的测试运行器项目。从我读到的所有内容来看,似乎我应该能够通过在测试运行器项目中执行以下操作来使其工作:
当我在更改后构建我的解决方案(通常是编辑.csproj文件),我会得到以下错误信息:
“Xunit.Runner.MSBuild.xunit”任务无法从程序集C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll中加载。无法加载文件或程序集“file:// /C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll”或其依赖项之一。系统找不到指定的文件。请确认声明是否正确,程序集及其所有依赖项是否可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。
即使我将xunit.runner.msbuild.dll和xunit.runner.utility.dll添加到所引用的项目中,我仍然会收到此消息。但如果我没有进行任何更改再次构建,则始终会得到以下结果:
找不到“xunit”任务。请检查以下内容:1)项目文件中任务的名称与任务类的名称相同。2)任务类为“public”并实现Microsoft.Build.Framework.ITask接口。3)任务在项目文件中正确声明,或位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录中的*.tasks文件中。
但我已经检查了所有这些事情:
xunit.runner.msbuild.dll中的任务类为Xunit.Runner.MSBuild.xunit(类名中的xunit为小写)。
任务类继承自Task,它实现了ITask。
因此,可能在UsingTask中存在问题,但我不知道问题出在哪里。
(我也认为问题可能是xunit.runner.msbuild.dll针对.NET 2.0,并且我正在使用VS 2010,但我在.NET 2.0中重新创建了测试运行器项目,问题仍然存在。)
有人可以帮忙吗?
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Test"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
[auto-created project stuff]
<UsingTask AssemblyFile="xunit.runner.msbuild.dll"
TaskName="Xunit.Runner.MSBuild.xunit" />
<Target Name="Test">
<xunit Assembly="$(MSBuildProjectDirectory)\..\OnePageOneDb.Tests\bin\Debug\OnePageOneDb.Tests.dll" />
</Target>
</Project>
当我在更改后构建我的解决方案(通常是编辑.csproj文件),我会得到以下错误信息:
“Xunit.Runner.MSBuild.xunit”任务无法从程序集C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll中加载。无法加载文件或程序集“file:// /C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll”或其依赖项之一。系统找不到指定的文件。请确认声明是否正确,程序集及其所有依赖项是否可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。
即使我将xunit.runner.msbuild.dll和xunit.runner.utility.dll添加到所引用的项目中,我仍然会收到此消息。但如果我没有进行任何更改再次构建,则始终会得到以下结果:
找不到“xunit”任务。请检查以下内容:1)项目文件中任务的名称与任务类的名称相同。2)任务类为“public”并实现Microsoft.Build.Framework.ITask接口。3)任务在项目文件中正确声明,或位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录中的*.tasks文件中。
但我已经检查了所有这些事情:
xunit.runner.msbuild.dll中的任务类为Xunit.Runner.MSBuild.xunit(类名中的xunit为小写)。
任务类继承自Task,它实现了ITask。
因此,可能在UsingTask中存在问题,但我不知道问题出在哪里。
(我也认为问题可能是xunit.runner.msbuild.dll针对.NET 2.0,并且我正在使用VS 2010,但我在.NET 2.0中重新创建了测试运行器项目,问题仍然存在。)
有人可以帮忙吗?