2017-09-19 8 views
1

私は比較的単純な解決策を持っています。 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.consolexunit.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を使用しないでください。

+0

これは公開された保管庫ですか?また、xunitをCakeスクリプトの '#tool'プリプロセッサとして追加しましたか? –

+0

残念なことに:-(はい、#tool指令があります。編集した質問が表示されます –

+0

GitHubなどでホストされている小さなサンプルアプリケーションを作成して、問題があることを示すことができますか? –

答えて

2

同じ問題が発生したので、XUnit2ではなくDotNetCoreTestを使用して解決します。

Task("Test") 
    .Does(() => 
    { 
     DotNetCoreTest("./test/[TestProjectPath]/[TestProject.csproj]"); 
    });