单元测试使用本机代码的c#项目

单元测试使用本机代码的c#项目,c#,visual-studio-2010,unit-testing,c++-cli,unittest2,C#,Visual Studio 2010,Unit Testing,C++ Cli,Unittest2,我有三个项目 < P > 1包含完全业务逻辑的非托管C++ 2) C++/CLI(管理的项目名称) 3) C#GUI 我在C++/CLI中添加了非托管C++的库文件,然后在C++项目中加入了C++/CLI的DLL。这一切都很好,执行也很麻烦。 现在,我想对调用C++/CLI包装器的C#函数进行单元测试,然后返回结果。我使用Visual Studio 2010创建了一个单元测试。我在测试项目中添加了C++/CLI的dll。现在,当我尝试执行测试时,它会抛出异常managed.dll not fou

我有三个项目

< P > 1包含完全业务逻辑

的非托管C++ 2) C++/CLI(管理的项目名称

3) C#GUI

我在C++/CLI中添加了非托管C++的库文件,然后在C++项目中加入了C++/CLI的DLL。这一切都很好,执行也很麻烦。 现在,我想对调用C++/CLI包装器的C#函数进行单元测试,然后返回结果。我使用Visual Studio 2010创建了一个单元测试。我在测试项目中添加了C++/CLI的dll。现在,当我尝试执行测试时,它会抛出异常managed.dll not found

这是密码

   [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丢失了


抱歉,我把它弄糊涂了。请询问您是否需要更多信息。提前感谢您查看测试项目输出文件夹了吗?可能未将managed.dll复制到输出

更新:


你能从异常中发布融合日志吗?这应该会让你知道为什么找不到该文件。

你看过测试项目输出文件夹了吗?可能未将managed.dll复制到输出

更新:


你能从异常中发布融合日志吗?这应该可以解释为什么找不到该文件。

项目可能正在编译到不同的目录

这会导致编译器正确编译,但在运行时找不到文件

当您将不同的项目导入到新的解决方案中时,通常会发生这种情况


使新的单元测试编译到同一目录

这些项目可能正在编译到不同的目录

这会导致编译器正确编译,但在运行时找不到文件

当您将不同的项目导入到新的解决方案中时,通常会发生这种情况


使新的单元测试编译到同一目录

所有项目的输出文件都在同一个文件夹中,并且都存在。我以前从未使用过fusion log…我目前正在处理它,并将告诉您…Dmitry Reznik:fusion log没有显示任何内容…我的是一个测试项目,它在运行测试时引发该异常。所有项目的输出文件都在同一文件夹中,并且所有我以前没有使用过fusion log…我现在正在处理它,我会告诉你…Dmitry Reznik:fusion log没有显示任何内容…我的是一个测试项目,在运行测试时抛出该异常所有项目都编译到同一个公共目录所有项目都编译到同一个公共目录是DLL报告为丢失或格式无效?您的单元测试需要以与其加载的本机代码相同的位运行。Dll报告为缺失…单元测试和本机代码都以x86格式运行。Dll报告为缺失还是无效格式?您的单元测试需要以与其加载的本机代码相同的位运行。Dll报告为丢失…单元测试和本机代码都在x86中运行