Модульное тестирование проекта C #, который использует собственный код - PullRequest
1 голос
/ 21 марта 2012

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

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 ]

1 голос
/ 21 марта 2012

Вы смотрели папку вывода тестового проекта?Возможно, файл manual.dll не скопирован в вывод.

Обновление:

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

0 голосов
/ 21 марта 2012

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...