我有三个项目,它使用本地代码
1)托管C++包含完整的业务逻辑单元测试C#项目
2)C++/CLI(项目名称管理)
3) C#GUI
我已经在C++/CLI中添加了非托管C++的库文件,然后在C#项目中添加了C++/CLI的dll。这一切工作正常,执行无故障。
现在我想对C#函数进行单元测试,它调用C++/CLI包装,然后获取结果。我使用Visual Studio 2010.创建了一个单元测试。我在测试中添加了C++/CLI的dll project.Now当我试图执行测试抛出例外managed.dll没有找到
这里是代码
[TestMethod()]
public void getstateTest()
{
bool expected=true;
bool actual=false;
try
{
GUI.test target = new test();
expected = true; // TODO: Initialize to an appropriate value
actual = target.getstate();
}
catch (FileNotFoundException exception)
{
MessageBox.Show("Missing file is : " + exception.FileName);
}
Assert.AreEqual(expected, actual);
}
The getstate function is
namespace GUI
{
public class test
{
public bool getstate()
{
bool chk = false;
bool result;
String a = "some path";
String b = "some path"
String c = "some path"
managed objct;
objct = new managed();
objct.Initialize(a, b, c, chk);
objct.Execute();//calls the C++/CLI execute which calls unmanaged C++
result = objct.Executionresult();//gets a bool result
return result;
}
}
}
同样的事情,工作正常,当我运行应用程序上运行的测试项目,它说的DLL文件丢失
很抱歉,如果我做到了confusing.Please问,如果你提前
是否报告DLL丢失或格式无效?您的单元测试需要以与它们加载的本机代码相同的位运行。 – 2012-03-21 18:26:17
Dll被报告为丢失...单元测试和本地代码都在x86中运行 – 2012-03-22 04:22:10