Coreは、基本コマンドの中にテストランナーの実行サブコマンドが含みます。testとするだけでビルドからテスト実施、レポート(XMLファイル)出力までを一気に実行できます。test)があります。このドキュメント内にはxUnitを利用する手順しか書かれていません。個人的にはxUnitのキラキラしたオシャレ雰囲気があまり好きではなくて、泥臭さを感じるNUnitのほうが好みです。"foobar"という記述を解釈したランタイムは、src/dotnet/commands/dotnet-test/ConsoleTestRunner.csに従ってdotnet-test-foobarというコマンドを探しにいきます。dotnet-test-nunitというコマンドが存在すればいい感じにテストランナーとして呼び出せるはずです。Coreにおけるコマンド解決の方法コマンドを探しにいきますが、一体どのように対象を解決して実行するのでしょうか。プロジェクトのbinディレクトリもしくはパッケージ参照パスから、一致する名前をもつexeまたはdllを拾ってくることは想像がつきます。具体的にはsrc/Microsoft.DotNet.Cli.Utils/ProjectDependenciesCommandFactory.csを起点とするsrc/Microsoft.DotNet.Cli.Utils/CommandResolutionのコード群による解決がおこなわれます。コマンド解決部分は1.0.0正式版リリースを前にしてもちょくちょく手が入っているので、正式版が出た後で機会があれば書いてみたいところです。Core対応版がまだリリースされていないらしいことに気付きました。ゴリ押しする方法は提示されています。Core方式のほうが、テストランナーとのレポートのやり取り方法などをきっちり定義しているので、のちのちはCIでの状況モニタなどにおいて下回りのテストランナーを意識せずに結果を利用できるようになって嬉しいはずです。Coreの流儀でやりたいものです*1。Core対応alpha版が配布されています*2。本エントリを書いているタイミングでの最新版はdotnet-test-nunit/3.4.0-alpha-1です。使いかたはとてもシンプルです。testページのxUnit向けガイドに途中まで従ってglobal.jsonを書くなどしておきましょう。テストプロジェクト側では次のようなproject.jsonファイルを作成します。"1.0.0"は私の手元のテスト対象パッケージです。手元の環境にあわせて適宜変更してください。大事な記述が数点あるので整理します。実行環境に含めたいランタイムの一覧テストランナーでxplatというのはまああんまり想定するものでないので、"platform"指定ではなく"platfroms":でそれぞれ指定していく感じです一般的なものはここでカバーしていますが、足りない場合は公式のRID一覧ページを参照してくださいどれをサボってもうまく動作しないはずです。"nunit"と表記する必要があります。私は当初NUnitと記載していて、以下のように「そんな実行ファイルないよ」と怒られていました。Coreのテストランナーサポートについては、NUnitのGitHubリポジトリにてissue(https://github.com/nunit/nunit/issues/1371が立っていて、nuget.orgで配布を始める前の暫定版も配布されていましたが、このblogエントリを下書きで放置している間にクローズされました。本件を調べ始めた当初にはNUnit開発者のプライベートなNuGetリポジトリにてテスト版が公開されていたのですが、nuget.orgへ移動しました。Core環境を想定していないパッケージはまだまだ多いです。Core用project.json内で頻出します。Coreのコマンドラインからテストを実行してみる次のようなコードを書いて実行してみます。}}このようになります。1.正しく失敗しますね。