Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 海洋单元测试_.net_Nunit_Ocean - Fatal编程技术网

.net 海洋单元测试

.net 海洋单元测试,.net,nunit,ocean,.net,Nunit,Ocean,当我尝试从Ocean SDK运行单元测试示例时,我在尝试将dll加载到NUnit.exe中时出错。 有人能帮忙解释原因吗 NUnit.exe中的以下异常: System.IO.FileNotFoundException... Server stack trace: at System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, Runtim

当我尝试从Ocean SDK运行单元测试示例时,我在尝试将dll加载到NUnit.exe中时出错。 有人能帮忙解释原因吗

NUnit.exe中的以下异常:

System.IO.FileNotFoundException...

Server stack trace: 
   at System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.Module.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Module decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, RuntimeMethodHandle& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
   at System.RuntimeType.GetCustomAttributes(Type attributeType, Boolean inherit)
   at NUnit.Core.CoreExtensions.InstallAdhocExtensions(Assembly assembly)
   at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
   at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
   at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
   at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
   at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
   at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(TestPackage package)
   at NUnit.Util.TestDomain.Load(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)

这个案例已经通过Ocean Dev.Portal解决了,正如我们所发现的,遵循示例自述文件中的所有说明非常重要,例如,“确保将其他测试程序集复制到petrel根目录”——这不仅意味着NUnit根目录的DLL,还意味着lib子文件夹。发现了两个“不清楚”点:1)nunit.exe.config中的ProbingPath必须通过Petrel中的ProbingPath进行扩展,但不能替换;2)出于某种原因,用户可能需要将nunit“framework”子文件夹的内容复制到Petrel根目录中。

可能,nunit的“启用卷影复制”选项已选中。应关闭此选项,以便将运行测试所需的文件复制到Petrel根文件夹。

我们通过将所有NUnit程序集和Ocean DLL放在Extensions文件夹中来消除此消息。但是现在我们在运行它时出错了。在System.Reflection.Module.\u在System.Reflection.Assembly.GetTypes()在Slb.Ocean.Petrel.Testing.PetrelEngine.InitializeInstance()在Slb.Ocean.Petrel.Testing.PetrelEngine.get.\u实例()在UnitTestDemo.AssemblySetUp.RunBeforeAnyTests()处在C:\Program Files\Schlumberger\Ocean 2011\Samples\UnitTesting\UnitTest\AssemblySetup.cs:line 30中,这种方法似乎不适用于Petrel/Ocean 2013,是吗?我不再是Ocean团队的成员,但我知道,从2013版开始,Ocean有一个“集成”NUnit引擎,如果有机会,请参阅Ocean Developers Guide,第11卷:“许可、部署和单元测试”,了解更多详细信息。