У меня есть бегун GUI NUnit для запуска тестов на модульной тестовой сборке каждый раз, когда он построен. Проблема в том, что когда я пытаюсь построить, DLL в папке Debug используется NUnit, что предотвращает его создание, что предотвращает автоматический запуск теста. Есть ли способ обойти это?NUnit не выпускает .dll для моего проекта модульного тестирования
ответ
Всякий раз, когда вы строите свое решение. Я предлагаю вам закрыть Nunit, который загружен вашей .dll. После разгрузки попытайтесь построить, то ваша сборка будет успешной.
Поскольку Nunit использует вас .dll. Это не позволит вашему построению быть успешным.
Это не очень удобно.Я только начинаю изучать TDD (и я, возможно, не делаю этого правильно). Сначала я пишу небольшой тест, затем кодирую, чтобы пройти этот тест, а затем написал еще один небольшой тест и так далее. Как только я закодирую небольшой бит, я хочу запустить тесты, чтобы проверить, проходит ли он. Чтобы продолжать открывать и закрывать тестовый графический интерфейс после каждого небольшого изменения кода, это боль. – Ben
У меня была аналогичная проблема некоторое время назад, и моим окончательным решением было отказаться от использования NUnit GUI runner и просто запустить их непосредственно из кода.
В моем проекте я ссылался на библиотеки NUnit, необходимые этим недавно построенным dlls, а также nunit.core и nunit.utils. Сам код очень прост:
TestResult ExecuteTests(string testAssemblyPath) {
CoreExtensions.Host.InitializeService();
TestPackage testPackage = new TestPackage(testAssemblyPath);
testPackage.BasePath = Path.GetDirectoryName(testAssemblyPath);
RemoteTestRunner testRunner = new RemoteTestRunner();
testRunner.Load(testPackage);
TestResult testResult = testRunner.Run(new NullListener(), TestFilter.Empty, true, LoggingThreshold.Warn);
testRunner.Unload();
CoreExtensions.Host.UnloadService();
return testResult;
}
объект TestResult
является очень мощным. Помимо всего прочего, он содержит все результаты, подвыборы, сами тесты и т. Д. Чтобы их проанализировать, вы можете либо создать простой парсер, либо использовать одну из возможностей, предоставляемых библиотеками NUnit. Мой любимый XmlResultWriter
, но есть и другие. Все они можно найти в файле nunit.util.dll.
К сожалению, это все равно блокирует перезагрузку dll. Я избежал этой проблемы, выполнив ее в отдельном AppDomain и выгрузив этот домен после завершения тестов. Затем dll прекрасно освобождается, и вы можете делать с ним все, что хотите.
Могу ли я предложить несколько иной подход, но по той же схеме, как @UvarajGopu ....
Пока вы используете Visual Studio выше, чем «Экспресс» версия, и если вы пишете UnitTests в отдельный проект (как правило, вместе с проектом тестируется, с суффиксом «.UnitTests»), то сделать это:
- Установите ваш UnitTests проект как проект StartUp (щелкните правой кнопкой мыши в обозревателе решений «Установить как Startup Project ")
- В свойствах проекта для этого проекта, на вкладке« Отладка », choo se «Запустите внешнюю программу» и выберите исполняемый файл GUI NUnit. Поместите имя сборки UnitTests в «Аргументы командной строки».
Теперь вы можете просто нажать F5 (чтобы начать отладку), которая будет строить ваши проекты, и запустите для вас графический интерфейс NUnit. Это дает дополнительное преимущество в том, что если ваши тесты терпят неудачу, вы можете добавить контрольные точки и пройти через отладчик (без необходимости прикладывать отладчик вручную).
- 1. Раздел конфигурации log4net для проекта тестирования NUnit
- 2. Как настроить NUnit для запуска модульных тестов моего проекта?
- 3. Переключение между использованием NUnit и MSTest для модульного тестирования
- 4. Проекты NUnit vs Visual Studio 2008 для модульного тестирования?
- 5. Предложения для модульного тестирования
- 6. Разработка модульного тестирования API
- 7. Модульного тестирования моего пользовательского поставщика членства
- 8. Рамка модульного тестирования для MATLAB
- 9. Веб-ресурсы для модульного тестирования
- 10. Преобразование проекта тестирования NUnit в MS-тест
- 11. Mock dao для модульного тестирования
- 12. Visual Studio встроенный инструмент для модульного тестирования?
- 13. Использование NUnit без создания отдельного проекта
- 14. рамки модульного тестирования для проектов ASP.NET
- 15. Имитировать HttpRequestException для модульного тестирования
- 16. Как модульного тестирования Подписка на событие с NUnit
- 17. Событие триггера для модульного тестирования
- 18. Создание репозиториев для модульного тестирования
- 19. System.IO.FileNotFoundException для сборки во время модульного тестирования
- 20. Где указать URL-адрес для тестирования моего проекта тестирования нагрузки
- 21. Nunit не выпускает DLL, используемую в тесте/не может удалить в teardown
- 22. модульного тестирования пользовательских UIView
- 23. комплект модульного тестирования Symfony
- 24. Mocking Websocket Server для модульного тестирования
- 25. Как установить HttpContext.Current.User.Identity.Name для модульного тестирования
- 26. Сериализуйте объект для модульного тестирования
- 27. Местоположение файла для модульного тестирования
- 28. Использование SimpleHTTPServer для модульного тестирования
- 29. Инициализация активности для модульного тестирования
- 30. Mocking net.Socket для модульного тестирования
Почему вы пытаетесь перестроить, когда тестовый бегун все еще работает? –
Иногда случается, что процессы nunit-agent.exe умножаются и «висят». Единственное решение, которое я нашел, - это случайное завершение работы NUnit и ручное уничтожение процессов-сирот nunit-agent ... Однако это никогда не блокировало мои папки для сборки, поэтому это может быть другой случай. – BartoszKP
@ HansPassant, идея здесь заключается в том, чтобы оставить графический интерфейс NUnit открытым при написании тестов и автоматически запускать их при перестройке. – Riddari