在NUnit测试中运行使用MATLAB Builder NE创建的DLL时,我们遇到了问题。但是,如果我们从控制台应用程序引用相同的项目,它运行得很好。似乎问题源于NUnit环境。
以下是错误代码:
Error marshalling .NET object.
'Message: Unable to find assembly 'Test.Miros.Plugins.Processors.Matlab, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Source: mscorlib
HelpLink: '
以下是源代码:
[TestFixture]
public class MatlabProcessorTest
{
[Test]
public void Test()
{
MirMat01DotNet.MirMat mirmat = new MirMat();
mirmat.MirMat01(@"D:\Matlab\IniFiles\test.ini", new MWObjectArray(new MyTest()));
var result = mirmat.BuilderFunctionTest(6, 3, 4);
int k = 0;
}
}
MATLAB函数是MirMat01,有2个输入参数:一个ini文件和一个C#对象。我们可以在NUnit之外运行Test()方法,但不能作为测试NUnit运行。似乎自定义对象(MyTest)导致问题。
此外,如果我们使用标准C#对象运行MirMat01函数,例如String对象,那么它可以作为NUnit测试运行。
所以看起来NUnit正在做一些来自Builder NE的DLL不喜欢的东西。以前有没有人经历过这种行为?任何提示将不胜感激:)
亲切的问候 安东