Модульное тестирование 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 из исключения? Это должно дать некоторые идеи, почему файл не найден.
Проекты, вероятно, компилируются в разные каталоги.
Это приводит к правильной компиляции компилятора, но во время выполнения он не может найти файлы.
Это часто происходит, когда вы импортируете отдельные проекты в новое решение.
Создайте новый модульный тест в том же каталоге.