2016-09-29 7 views
0

ASP.NET Core 1.0プロジェクトにNUnitを設定したかったのです。私は次のように試してみた:http://www.alteridem.net/2015/11/04/testing-net-core-using-nunit-3/ しかし、それはコンソールアプリケーションのためだ。ASP.NET MVCコア1.0でNunitを設定する

新しいプロジェクト(クラスライブラリ)をソリューションにアタッチして、元のプロジェクトを参照しようとすると、参照エラーが発生します。ここで

が私のために働いていたものです:コンソールライブラリプロジェクトとは対照的に、

  1. 私は、私の元のプロジェクトへの書き込みテスト専用の別のWebアプリケーションプロジェクトを、添付しました。
  2. 次に、 "dotnet-test-nunit"、 "NUnit"、 "NUnit.Console"、 "NUnit.Runners"のNuGetパッケージをダウンロードしました。
  3. それから私はproject.jsonに次の行を追加した後に働いていたテストを書いた:"testRunner": "nunit"

これは私のテストプロジェクトからproject.jsonファイルです:

`

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "JustForTest": "1.0.0-*", 
    "NUnit": "3.4.1", 
    "NUnit.Runners": "3.4.1", 
    "NUnit.Console": "3.4.1", 
    "dotnet-test-nunit": "3.4.0-beta-2" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "web.config" 
    ] 
    }, 
    "testRunner": "nunit", 
    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
}` 

以下の質問があります:

  1. これは最適化されたプロセスのようには見えません。どうすれば最適化できますか?
  2. コンソールアプリケーションでテストがうまくいかなかったのはなぜですか?

ご協力いただければ幸いです。私はTDDの初心者であり、C#でのプログラミングに関してもそういう意味で提案があれば、それも親切に共有してください。

ありがとうございました。

答えて

1

NUnit.RunnersまたはNUnit.Console NuGetパッケージは必要ありません。私があなたのブログに投稿した記事は、NUnitLiteを使用していました。これは早い段階でNUnitで.NETコアユニットテストを書く唯一の方法でした。それ以来、dotnet-test-nunitが道のりです。これはVisual Studioと統合され、テストエクスプローラウィンドウまたはdotnet testコマンドを使用してコマンドラインからテストを実行できます。

ユニットテストプロジェクトは、コンソールアプリケーションまたはWebアプリケーションではなく、.NET Core Class Libraryである必要があります。ハイレベルのステップは

  1. プロジェクトにdotnet-test-nunitNUnit NuGetパッケージを追加するには、ソリューションに.NETのコアクラスライブラリプロジェクトを追加し、ある
  2. テストプロジェクトから
  3. 参考ウェブアプリ
  4. いくつかのテストが
  5. より詳細なwalkthroのVisual Studio

から、あなたのテストを実行します書きますugh、Writing NUnit 3 Tests for .NET Core and ASP.NET Coreに私の新しいブログ投稿を読んでください。

また、ASP.NET Core documentation for Integration Testingを参照すると、テストサーバーの設定方法に関するヒントが得られ、Startupコードが実行されていることを確認する必要があります。

+1

あなたの答えをありがとう。あなたのブログは、ステップバイステップのプロセスを表示する際に本当に助けになりました。 – Blaze

+0

Robにもありがとうと思います。私のテストはVisual Studioでうまく動作しています。私はそれらをVSTS/Visual Studio Onlineで動かすことはできないようです。私が見つけたすべての記事は、テスト・アダプター・ナゲット・パッケージで動作することを示唆しています。そのいずれも.netコアでサポートされていません。 –

+0

NUnit、MSTest、xUnitのローカルとVSTSを完全に実装しようとしましたが、xUnitが最高のサポートを受けています - 詳細とリンクはhttp://stackoverflow.com/q/40093573/2579219 –

関連する問題