VS2008 Программа командной строки MSTest зависает при загрузке модульной тестовой сборки - PullRequest
2 голосов
/ 20 мая 2009

В Visual Studio 2008 с пакетом обновления 1 (SP1) вы можете создать проект модульного теста, который использует MSTest в качестве тестового прогона. Сейчас я работаю над тестами, которые тестируют неуправляемый C ++ MFC из управляемого проекта MSTest, и это была довольно интересная поездка.

Похоже, что есть разница между использованием среды выполнения тестов IDE и приложением командной строки MSTest.exe. В моем сценарии тесты будут работать нормально в IDE, и все тесты пройдут, но если вы запустите средство запуска командной строки, MSTest.exe будет зависать при попытке загрузить DLL модульного теста.

Это, похоже, проблема с отсутствующей зависимостью в DLL. Когда я загружаю DLL модульного теста в Depends.exe (Dependency Walker), Depends.exe будет жаловаться, что не может найти msvcr90d.dll, которая является средой отладки C VS2008. Я скопировал этот файл в папку Out для тестового запуска и попытался запустить mstest на тестовой DLL, но это не устранило проблему. Есть идеи?

Я мог бы добавить некоторые DeploymentItems к тестам или к testrunconfig, но у меня нет возможности узнать, что мне нужно добавить. Любые идеи для поиска, какие элементы должны быть добавлены как DeploymentItems?

Это происходит, когда я тестирую статическую библиотеку, в которой удален объект CWinApp. Я думаю, что должен удалить его, чтобы не было двух экземпляров CWinApp, верно?

Я просматривал эту справочную статью на форумах MSDN, но она не решила мою проблему: http://social.msdn.microsoft.com/forums/en-US/vststest/thread/aa7f7567-faba-4589-b0ae-fe8d2c831c7a/ Я не уверен, какая сборка отсутствует, и в Process Monitor так много записей, что кажется невозможным найти отсутствующую. Любая помощь?

...