2016-05-18 46 views
5

NUNit kullanarak normal PCL kitaplığında yazılan testleri çalıştırmayı deneyin. Sadece boş bir proje, hiçbir şey yapmayan tek bir test.Taşınabilir Sınıf Kitaplığı testleri için NUnit

NUnit konsol koşucu NUnit 3.0 sürücüsü NUnit taşınabilir sürümünü desteklemiyor mesaj

göstermektedir. Platforma özel bir koşucu kullanın.

ve Resharper koşucu mesajla kilitleniyor

Birim Test Runner testleri

ve bir yığın izleme çalıştırmak için başarısız oldu:

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 

göre this comment PCL gerektiği Çalış, ama değil. Xamarin olmadan PCL kullanıyorsak, testleri yürütme seçenekleri nelerdir?

cevap

6

Taşınabilir testleri çalıştırmak için, kendi kendini çalıştıran bir test koşucusu oluşturmak için NUnitLite kullanmanız gerekir. Temel olarak, bir .NET 4.5.x konsol uygulaması, referans NUnitLite ve test derlemenizi yaratırsınız. Sonra testlerinizi çalıştırmak için konsol uygulamasını çalıştırın. Testleri çalıştırmak için .NET 4.5 yerine .NET Çekirdeği kullanması dışında adımlar için bkz. Testing .NET Core using NUnit 3.

Test ettiğiniz derleme PCL'dir ancak hedef olarak .NET 4.5 ise, daha kolay bir yaklaşım test takımınızı .NET 4.5.x olarak oluşturmak ve test altında PCL takımına başvurmaktır. Bu, testlerin NUnit çerçevesinin tam sürümünü referans göstermesine ve testlerinizi Visual Studio veya Resharper ile çalıştırmanıza izin verecektir. Üzerinde çalıştığınız kod PCL olduğundan, testlerin PCL olması gerektiği anlamına gelmez.