ビルド時に xUnit テストを実行する C# プロジェクトをセットアップしようとしているので、継続的インテグレーションで使用できます。通常のプロジェクト、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.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' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。宣言が正しいこと、アセンブリとそのすべての依存関係が利用可能であること、および Microsoft.Build.Framework.ITask を実装するパブリック クラスがタスクに含まれていることを確認してください。
xunit.runner.msbuild.dll と xunit.runner.utility.dll を参照先のプロジェクトに追加しても、このメッセージが表示されます。しかし、変更せずに再度ビルドすると、一貫して次のようになります。
「xunit」タスクが見つかりませんでした。以下を確認してください: 1.) プロジェクト ファイル内のタスクの名前がタスク クラスの名前と同じである。2.) タスク クラスは "パブリック" であり、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 を実装する Task を継承します。
- なので、UsingTask に問題があるのかもしれませんが、それが何かはわかりません。
(問題は、xunit.runner.msbuild.dll が .NET 2.0 を対象としていて、VS 2010 を使用している可能性も考えましたが、テスト ランナー プロジェクトを .NET 2.0 で再作成しましたが、問題は解決しませんでした。)
誰でも助けることができますか?