私は比較的単純な解決策を持っています。 MSBuild(VS 2017 Mac)の下では、すべて正常に動作します。私はCakeビルドスクリプトを作成していますが、単体テストを動作させることはできません。たくさんの例がありますが、もう有効ではないようです。 DotnetCoreTestが必要な場合があります。ほとんどの場合、XUnit2が必要です。私のプロジェクトでは全く動作しません。XUnitはCakeを使って.NET Coreを扱っています
XUnit2を実行しているとき、私は次のエラーを取得する:System.InvalidOperationException: Unknown test framework: could not find xunit.dll (v1) or xunit.execution.*.dll (v2) in /Users/dev/Projects/MyProject/tst/MyProject.Serialization.UnitTests/bin/Release/netcoreapp1.1
そして、その出力はファイルではありませんが実際には、絶対に有効です。ここに私のユニットテストプロジェクトのための参照です:私はxunit.runner.console
とxunit.extensibility.execution
を参照した
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
<PackageReference Include="xunit.runner.console" Version="2.2.0" />
<PackageReference Include="FluentAssertions" Version="4.19.2" />
<PackageReference Include="Moq" Version="4.7.99" />
<PackageReference Include="FluentAssertions.AspNetCore.Mvc" Version="0.7.0-beta1" />
<PackageReference Include="AutoMapper" Version="6.1.1" />
<PackageReference Include="ExpectedObjects" Version="1.3.0" />
<PackageReference Include="OpenCover" Version="4.6.519" />
<PackageReference Include="xunit.extensibility.execution" Version="2.2.0" />
</ItemGroup>
は、まだこれらは、先のディレクトリにコピーされません。 .NET Coreにはこれを強制する方法はないようで、手動でコピーしてもテストアセンブリは読み込まれません。明らかに、私は非常に基本的な何かが欠けている
#tool nuget:?package=NUnit.ConsoleRunner&version=3.4.0
#tool nuget:?package=xunit.runner.console
...
Task("Test")
.IsDependentOn("Build")
.Does(() =>
{
Information("Start Running Tests");
XUnit2(string.Format("./tst/**/*Tests/bin/{0}/**/*Tests.dll", configuration), new XUnit2Settings
{
});
});
が、そこにすべての矛盾する情報と、私はそれが何であるかわからない。ここで
は私のケーキのテストスクリプトです。 XUnitを使用しないでください。
これは公開された保管庫ですか?また、xunitをCakeスクリプトの '#tool'プリプロセッサとして追加しましたか? –
残念なことに:-(はい、#tool指令があります。編集した質問が表示されます –
GitHubなどでホストされている小さなサンプルアプリケーションを作成して、問題があることを示すことができますか? –