Неожиданное поведение от нагрузочного теста - PullRequest
0 голосов
/ 27 марта 2012

У меня есть нагрузочный тест, который содержит только один модульный тест.

Модульный тест представляет собой функцию в C #, которая вызывает код C ++ с использованием оболочки C ++ / CLI.

Он работает хорошобез каких-либо исключений.

Проекты

1) Бизнес-логика -> BusinessLogic.lib

2) Оболочка (принимает Business Logic.lib) -> Wrapper.dll

3) C # проект (принимает Wrapper.dll)

В нагрузочном тесте говорится, что Wrapper.dll не найден, тогда как полное приложение работает правильно, и даже модульный тест не сообщает о такихошибка

Точная ошибка

Метод теста TestProject1.testTest.getstateTest выбросил исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'ManagedBL.dll'или одна из его зависимостей.Указанный модуль не найден

, где TestProject1 - это тестовый проект, testTest - это тестовый класс, а getstateTest - это модульный тест

1 Ответ

2 голосов
/ 27 марта 2012

Является ли ваш нагрузочный тест частью среды тестирования (NUnit et al) или частью вашего приложения?

Если нагрузочный тест находится внутри среды тестирования, то убедитесь, что файл Wrapper.dll копируется в «промежуточную» папку, где среда тестирования выводит DLL и выполняет тест. Кроме того, укажите точное сообщение об ошибке при запуске нагрузочного теста.

Обновление

ОК, поэтому есть несколько причин, которые могут вызвать эту проблему:

  1. Visual Studio не копирует ManagedBL.dll в каталог промежуточной проверки.
  2. Visual Studio не копирует BusinessLogic.lib в промежуточный каталог.
  3. Visual Studio не копирует какую-либо другую библиотечную зависимость, используемую BusinessLogic.lib (т.е. является ли BusinessLogic.lib ссылкой на какие-либо другие нативные библиотеки?)

Технически VS должен скопировать ManagedBL.dll, если вы добавили его в ссылки проекта C #; тем не менее, убедитесь, что он все равно правильно скопирован (должен находиться в папке TestResults).

Чтобы исправить 2 и 3, вам может потребоваться сделать что-то вроде этого: Как скопировать собственные библиотеки в промежуточный каталог модульного теста в Visual Studio 2010

Наконец, если ничего не помогает, я настоятельно рекомендую вам получить Process Monitor и запускать его во время загрузки теста и использовать фильтры только для отображения информации, относящейся к вашему процессу тестирования. Process Monitor должен сообщать вам, когда вашему процессу не удается найти файл / библиотеку.

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