nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

.NET StandardプロジェクトをxUnitでテストする方法

.NET Standardのプロジェクトをテストするために、.NET Standardのテストプロジェクトを作成するとxUnitのテストが認識されずテストできません。
現状ではつぎのようにすることで対応できます。

  • Testプロジェクトを.NET Coreのコンソールアプリケーションとして作成する
  • NuGetからつぎのパッケージを追加する
    • Microsoft.NET.Test.Sdk 15.0.0
    • xunit 2.0.0
    • xunit.runner.visualstudio 2.0.0

これで.NET Standardのプロジェクトのテスト自体はできます。
しかし、その.NET StandardのプロジェクトがPCLライブラリ(Xamarin.Formsなど)を参照していたりすると、もうひと手間必要です。

.csprojをメモ帳などで開いて、PackageTargetFallbackを追記してあげてください。手で。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PackageTargetFallback>$(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8</PackageTargetFallback>
  </PropertyGroup>

これでいけるはずです。