« 2016年6月 | トップページ | 2016年8月 »

2016年7月

2016年7月20日 (水)

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に対応しようとしている感じなので、 待っていればそのうち対応されるんじゃなかろうか。 知らんけど。

« 2016年6月 | トップページ | 2016年8月 »