MSBuild - 尝试运行xUnit(.net)测试
我正在尝试建立一个C#项目,在构建时运行xUnit测试,所以我可以在持续集成中使用它们。我有一个常规项目,一个使用xUnit的类库测试项目,以及我的测试运行器项目。从我读过的所有内容看来,我应该能够通过在测试运行器项目中执行此操作来实现此功能:
<?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.TestsbinDebugOnePageOneDb.Tests.dll" />
</Target>
</Project>
当我在更改后构建我的解决方案(通常编辑.csproj文件)时,我得到了这个:
“Xunit.Runner.MSBuild.xunit”任务
无法从程序集中加载
C:用户[名为myUsername] 代码 OnePageOneDb OnePageOneDb.TestRunner xunit.runner.msbuild.dll。
无法加载文件或程序集
'文件:/// C:用户[名为myUsername] 代码 OnePageOneDb OnePageOneDb.TestRunner xunit.runner.msbuild.dll'
或其中一个依赖项。系统
找不到指定的文件。
确认一下
声明是正确的,即
程序集及其所有依赖项
可用,并且任务包含
实现的公共类
Microsoft.Build.Framework.ITask。
即使我将xunit.runner.msbuild.dll和xunit.runner.utility.dll添加到它引用的位置的项目中,我收到此消息。但如果我再次建造没有任何变化,我会一直得到这个:
找不到“xunit”任务。校验
以下内容:1。)的名称
项目文件中的任务是一样的
作为任务类的名称。 2.)
任务类是“公共的”并实现
Microsoft.Build.Framework.ITask
接口。 3.)任务是正确的
在...中宣布
项目文件,或* .tasks文件
位于
“C: WINDOWS Microsoft.NET 框架 v4.0.30319”
目录。
但我检查了所有这些东西:
xunit.runner.msbuild.dll中的任务类是Xunit.Runner.MSBuild.xunit
(并且xunit在类名中是小写的)。
任务类继承自Task,后者实现ITask。
所以也许在UsingTask中存在问题,但我不知道它是什么。
(我还认为问题可能是xunit.runner.msbuild.dll针对的是.NET 2.0,而我正在使用VS 2010,但我在.NET 2.0中重新创建了测试运行器项目并且问题仍然存在。)
有人可以帮忙吗?
没有找到相关结果
已邀请:
3 个回复
拭十年
MSBuildProjectDirectory是一个保留属性,包含“项目文件所在目录的绝对路径”。 编辑: 尝试使用全名Xunit.Runner.MSBuild.xunit来使用目标
疾很毋悲
剃摧庭峨僳