xUnit.netのテストがTest Explorerに出てこない
覚え書き。
xUnit.netを使っていてテストエクスプローラーにテストが出てこない、 というのはたまに起こって毎回原因探しに苦労するんだけど、 今回は条件がはっきりしているので記録しておく。
問題点
通常、 以下の手順でxUnit.netのテストを書いてビルドすると、 Visual Studioの「テスト エクスプローラー」上に記述したテストが自動的にリストアップされるはずだが、 それが出てこない。
- Visual Studio 2015 Update 3で、
- C#の「クラス ライブラリ(ポータブル)」プロジェクトを作り、
- NuGetで以下のコンポーネントを追加し、
- xunit 2.1.0
- xunit.runner.visualstudio 2.1.0
- xUnit.netのテストを記述する
- プロジェクトをビルドする
発生条件
「クラス ライブラリ(ポータブル)」の「ターゲット」として以下を選択すると発生するっぽい。
- 以下の二項目のみを選択する。または、
- .NET Framework 4.6
- Windows Universal 10.0
- 以下の三項目のみを選択する。
- .NET Framework 4.6
- Windows Universal 10.0
- ASP.NET Core 1.0
どうも、 ターゲットを上記条件にすると、 プロジェクトがNuGet 3を使う構成になるようです。 そうなった場合に、 テストがテストエクスプローラーに出てこなくなるみたい。 一部の設定がうまく組み込まれないのかねえ。
ちなみに、 ターゲットを「.NET Platform Standard」にしても プロジェクトがNuGet 3構成になるようです。 この場合、xunit 2.1.0を組み込もうとしても、 「Some packages are not compatible with .NETStandard」と文句を言われてそもそも組み込めません。 最新のプレリリースである、"xunit 2.2.0-beta2-build3300"ならば組み込むことができました。 それでもテストエクスプローラーにテストは出ないけど。
回避法
見つけられませんでした。
まあ、当面ターゲットを".NET Framework 4.5" + "Windows 8" + "ASP.NET Core 1.0"ぐらいにしておいて、 様子を見ますかねえ。
今後Portable Class Libraryは.NET Platform Standardベースになっていくだろうし、 プレリリース版で.NET Platform Standardに対応しようとしている感じなので、 待っていればそのうち対応されるんじゃなかろうか。 知らんけど。