Nunit: ファイルまたはアセンブリを読み込めませんでした 'nunit.framework'

作成日 2018年02月14日  ·  12コメント  ·  ソース: nunit/nunit

こんにちは、 dotnet nunit新しいプロジェクトを作成しましたが、Unit.ConsoleRunner.3.8.0を介してテストを実行しようとすると、このエラーが発生します。

DotnetSDKバージョン2.1.4

エラーを示すサンプルリポジトリ: https

./build.ps1を実行して、ケーキファイルを実行します。 これを行うと、NuGetからUnit.ConsoleRunner.3.8.0がダウンロードされます。 したがって、それを実行するか、nugetパッケージをダウンロードした後は、ケーキビジネスをスキップして、必要に応じてPowerShellでこれを実行できます。

.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll

question

最も参考になるコメント

ところで、.NET Core2.0に完全に機能するNUnit.Consoleがまだないのは残念です。 現在のPRを終えたら、誰も私を打ち負かさなければ、私はその方向に向かっています。

全てのコメント12件

これは、.NET Frameworkプロジェクトとは異なり、.NET Coreプロジェクトには、ビルド時にbin\{configuration}\{tfm}フォルダーにコピーされたnunit.framework.dllなどの依存関係がないためです。 dotnet publishを実行する必要があります。 Cakeの場合、それはDotNetCorePublish、NUnitの機能を確認してください。 次に、依存関係を含むbin\{configuration}\{tfm}\publishのアセンブリでテストを実行ます。

dotnet testは、 \publishパスをdotnet vstestに渡す前に、このすべての公開を行います。
dotnet vstestとNUnit Consoleはどちらもプロジェクトではなくアセンブリで動作するため、自己実行テストを作成する場合と同じように、最初に公開する必要があります。

ああ、これは本当に啓発的で役に立ちます。どうもありがとうございました。 ケーキの例を見ると、テストを実行するためにbinディレクトリに移動していることがはっきりと示されています: https

うまくいけば、これにぶつかった他の誰もがこれを見て、時間を節約するでしょう。

早すぎる前に:NUnit.ConsoleRunnerはまだ.NETCoreで実行されていません。 NUnitLiteは実行しますが、これがNUnitテストを実行する最も簡単な方法です: https

例: https

@ jnm2あなたの例はテスト結果を生成しますか? あなたが投稿したウィキから:

dotnet testは現在、コマンドラインオプションをテストアダプターに渡すことをサポートしていないため、NUnitはまだTestResults.xmlを生成できません。

これは私が最後に見たときの状態でした:

https://github.com/jnm2/Cake.SqlServer/blob/ed6093e268114ef640851414e64aabec49d284e8/build.cake#L114 -L134

try
{
    DotNetCoreTest("src/Tests/Tests.csproj", new DotNetCoreTestSettings
    {
        Configuration = configuration,
        NoBuild = true,
        Logger = "trx",
        ArgumentCustomization = a => a.AppendSwitchQuoted("--results-directory", tempDirectory)
    });
}
finally
{
    if (parameters.IsRunningOnAppVeyor)
    {
        // dotnet test cannot do more than one target framework per TRX file
        // AppVeyor seems to ignore all but the first TRX upload– perhaps because the test names are identical
        // https://github.com/Microsoft/vstest/issues/880#issuecomment-341912021
        foreach (var testResultsFile in GetFiles(tempDirectory + "/**/*.trx"))
            AppVeyor.UploadTestResults(testResultsFile, AppVeyorTestResultsType.MSTest);
    }
}

ところで、.NET Core2.0に完全に機能するNUnit.Consoleがまだないのは残念です。 現在のPRを終えたら、誰も私を打ち負かさなければ、私はその方向に向かっています。

こんにちは、これに関する更新はありますか?

https://github.com/nunit/nunit-console/issues/475がフォローするスレッドです。

@orihomieこれはクローズドな問題です。 別の質問をするつもりですか?

@CharliePooleいいえ、* \ NUnit.Console-3.6.1 \ nunit3-console.exeで.netcoreテストを起動しようとしたときに、ビルドプランでこの問題が発生し、例外が発生しました。

@orihomie .NET Coreのコンソールはまだ使用できませんが、 dotnet testは使用できます。

https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit

@orihomieコンソールを介した.NetCoreテストの実行の問題に関するフォローアップについては、nunit / nunit-console#478に注目してください。

このページは役に立ちましたか?
0 / 5 - 0 評価