Sly*_*Sly 5 .net nunit unit-testing portable-class-library xamarin
尝试使用NUNit运行在常规PCL库中编写的测试.它只是一个空项目,单一测试无效.
NUnit控制台运行器显示消息
NUnit 3.0驱动程序不支持NUnit的可移植版本.使用特定于平台的跑步者.
和Resharper跑步者正在崩溃的消息
单元测试运行器无法运行测试
和堆栈跟踪:
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
Run Code Online (Sandbox Code Playgroud)
根据这个评论,PCL应该可行,但事实并非如此.如果我们在没有Xamarin的情况下使用PCL,那么执行测试的选项有哪些?
要运行可移植测试,您需要使用NUnitLite来创建自执行测试运行器.基本上,您创建一个.NET 4.5.x控制台应用程序,引用NUnitLite和您的测试程序集.然后运行控制台应用程序以运行测试.请参阅使用NUnit 3测试.NET Core的步骤,除了它使用.NET Core而不是.NET 4.5来运行测试.
如果您正在测试的程序集是PCL但是将.NET 4.5作为目标,则更简单的方法是将测试程序集创建为.NET 4.5.x并引用正在测试的PCL程序集.这将使您的测试引用NUnit框架的完整版本,并允许您在Visual Studio或Resharper中运行测试.仅仅因为您正在处理的代码是PCL,这并不意味着您的测试需要是PCL.
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |