В проекте используется com interrop,вкратце, создается COM-инстанс и обращение к нему происходит через singletone-объект;
Необходимо было покрыть тестами часть данной функциональности, связанной с обращением к COM, и вот тут-то при запуске нескольких тестов и стало возникать исключение:
"System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used"
Проблема связана с тем, что каждый тест по умолчанию запускается в отдельном потоке, или даже домене (подробнее не разбирался), и доступ к инстансу COM-server происходил из другого потока...
Проблему пофиксил пока путем настройки не паралельного запуска тестов, а их последовательного выполнения.
Настраивается такое поведение путем внесения изменений в Local.testsettings файл, а именно, путем указания количества одновременно выполняемых тестов в
<Execution parallelTestCount=""<вставить нужное="" значение="">
если parallelTestCount == 0, то тесты выполняются параллельно, количество тестов в пуле выбирается самой студией...
Мне же был нужен следующий вариант:
<TestSettings name="Local" id="38863d1e-30b7-4b4a-a629-4add84f4982e" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <Description>These are default test settings for a local test run.</Description> <Execution parallelTestCount="1"> <TestTypeSpecific /> <Timeouts runTimeout="900000" testTimeout="900000" /> <ExecutionThread apartmentState="MTA"/> <AgentRule name="Execution Agents"> </AgentRule> </Execution> </TestSettings>
Важно: чтобы ваши изменения вступили в силу, нужно перегрузить проект/решение;
ps: попутно читал следующие ресурсы:
http://connect.microsoft.com/VisualStudio/feedback/details/534124/exception-running-tests-that-use-waithandle-waitall-waithandles
VS2010 tip: How to run unit tests in parallel
http://blogs.microsoft.co.il/blogs/dhelper/archive/2010/03/02/vs2010-tip-how-to-run-unit-tests-in-parallel.aspx
Parallel Test Execution in Visual Studio 2010
http://msmvps.com/blogs/p3net/pages/parallel-test-execution-in-visual-studio-2010.aspx
Executing Unit Tests in parallel on a multi-CPU/core machine
http://blogs.msdn.com/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx
1 комментарий:
Приветик!
Даже очень прикольный сайт.
Масса приколов...Анаша, План, Дудка, МДМА, и т.д.
Доброе пожаловать на сайт:
[b]
http://ituxinuliqoj.tk
[/b]
Отправить комментарий