2016-05-18 8 views
5

NUNitを使用して通常のPCLライブラリで記述されたテストを実行しようとしています。その空のプロジェクトで、何もしない単一のテストです。ポータブルクラスライブラリテストのNUnit

NUnitのコンソールランナーは、NUnitの3.0ドライバは、NUnitののポータブルバージョンをサポートしていないメッセージ

を示しています。プラットフォーム固有のランナーを使用してください。

とReSharperのランナーは、メッセージ

ユニットテストランナーがテスト

とスタックトレースを実行するために失敗してクラッシュさ:thisコメントPCLによる

at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) 
    at System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at NUnit.Engine.Drivers.NUnit3FrameworkDriver.Load(String testAssemblyPath, IDictionary`2 settings) 
    at NUnit.Engine.Runners.DirectTestRunner.LoadPackage() 
    at NUnit.Engine.Runners.AbstractTestRunner.Load() 
    at NUnit.Engine.Runners.MasterTestRunner.LoadPackage() 
    at NUnit.Engine.Runners.AbstractTestRunner.EnsurePackageIsLoaded() 
    at NUnit.Engine.Runners.MasterTestRunner.NUnit.Engine.ITestRunner.Explore(TestFilter filter) 
    at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0() in c:\Build Agent\work\10282fe47e6c6213\Psi.Features\UnitTesting\nUnit\Runner30\Src\BuiltInNUnitRunner.cs:line 79 
    at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action) in c:\Build Agent\work\10282fe47e6c6213\Psi.Features\UnitTesting\nUnit\Runner30\Src\BuiltInNUnitRunner.cs:line 623 

必要がありますしかし、それはしません。 XamarinなしでPCLを使用している場合、テストを実行するオプションは何ですか?

答えて

6

ポータブルテストを実行するには、NUnitLiteを使用して自己実行テストランナーを作成する必要があります。基本的に、.NET 4.5.xコンソールアプリケーション、NUnitLiteリファレンス、およびテストアセンブリを作成します。コンソールアプリケーションを実行してテストを実行します。テストを実行するのに.NET 4.5の代わりに.NETコアを使用する点を除いて、手順はTesting .NET Core using NUnit 3を参照してください。

テストしているアセンブリがPCLで、ターゲットとして.NET 4.5がある場合は、テストアセンブリを.NET 4.5.xとして作成し、テスト対象のPCLアセンブリを参照する方が簡単です。これにより、テストでNUnitフレームワークのフルバージョンを参照し、Visual StudioまたはResharperでテストを実行できるようになります。あなたが作業しているコードがPCLなので、あなたのテストがPCLである必要はありません。