Модульное тестирование AC# проекта, который использует собственный код

У меня три проекта

1) неуправляемый C++, содержащий полную бизнес-логику

2)C++/CLI (имя проекта управляется)

3) C# GUI

Я добавил библиотечный файл неуправляемого C++ в C++ / CLI, а затем dll C++ / CLI в проекте C#. Все это работает нормально, и выполнение без проблем.

Теперь я хочу выполнить модульное тестирование функции C#, которая вызывает обертку C++ / CLI, а затем получить результаты обратно. Я создал модульный тест с использованием Visual Studio 2010. Я добавил dll C++ / CLI в свой тестовый проект. Теперь, когда я пытаюсь выполнить тест, он выбрасывает исключение 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 отсутствует

Извините, если я сделал это запутанным. Пожалуйста, спросите, если вам нужно больше информации. Спасибо заранее

2 ответа

Решение

Вы смотрели на выходную папку тестового проекта? Может быть, файл managed.dll не скопирован в вывод.

Обновить:

Не могли бы вы опубликовать журнал Fusion из исключения? Это должно дать некоторые идеи, почему файл не найден.

Проекты, вероятно, компилируются в разные каталоги.

Это приводит к правильной компиляции компилятора, но во время выполнения он не может найти файлы.

Это часто происходит, когда вы импортируете отдельные проекты в новое решение.

Создайте новый модульный тест в том же каталоге.

Другие вопросы по тегам