.NET Standard 1.6クラスライブラリ(.NET Coreプロジェクトから参照可能)の単体テスト方法に関する最新のドキュメントを見つけることができません。
これが私のproject.json
私のライブラリのように見えます:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"Portable.BouncyCastle": "1.8.1.2"
},
"frameworks": {
"netstandard1.6": {}
}
}
ここで残っているタスクは、単体テストを実行できるプロジェクトを作成できるようにすることです。目標はxUnitを使用することです。これは.NET Coreチームが推進していることのようです。
先に進み、次のようなproject.jsonを持つ別の.NET Portableライブラリプロジェクトを作成しました。
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"xunit": "2.2.0-beta4-build3444",
"xunit.runner.visualstudio": "2.1.0"
},
"frameworks": {
"netstandard1.6": {
}
}
}
そのプロジェクト内の私のテストクラスは次のようになります。
using USB.EnterpriseAutomation.Security.DotNetCore;
using Xunit;
namespace Security.DotNetCore.Test
{
public class AesEncryptionHelperTests
{
[Fact]
public void AesEncryptDecrypt()
{
var input = "Hello world!";
var encrypted = AesEncryptionHelper.AesEncrypt(input);
var decrypted = AesEncryptionHelper.AesDecrypt(encrypted);
Assert.Equal(input, decrypted);
}
}
}
先に進んでそのプロジェクトをビルドすると、テストエクスプローラーにはテストが表示されません。
このライブラリをテストできる単体テストを作成するにはどうすればよいですか?
現在、xunit 2.1.0およびdotnet-test-xunit 2.2.0-preview2-build1029を使用した作業プロジェクトがあります。
これは私の project.json
単体テストプロジェクトの場合:
{
"dependencies": {
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"MyProject.Library": {
"target": "project",
},
"xunit": "2.1.0"
},
"description": "Unit tests",
"frameworks": {
"netcoreapp1.0": {
"imports": "dotnet"
}
},
"testRunner": "xunit"
}
これは、コマンドライン(dotnet test
)およびVisual Studio 2015 Test Explorerで。
dotnet-test-xunit
は非推奨になりましたが、わかりません。上記のすべては、project.jsonが廃止された後に変更される可能性がありますが、これは今日機能します。
この問題は、xUnitのGitHubページに投稿されています: https://github.com/xunit/xunit/issues/1032
Brad Wilsonが説明しているように、NETStandardライブラリは、ドットネットコアライブラリまたは完全な.Net Frameworkライブラリでテストする必要があります。
私の場合、ユニットテストライブラリを完全な「クラシックデスクトップ」ライブラリにし、テストエクスプローラーでテストを実行できました。