Выполнение юнит-тестов на более чем пяти ядрах параллельно - PullRequest
12 голосов
/ 11 августа 2010

Я следовал инструкциям на http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx до буквы, и я могу выполнять тесты параллельно.

Пока все хорошо.

Теперь проблема: я не могу установить для параметра parallelTestCount ноль (автоматическая настройка) или значение выше 5. Выполнение пяти параллельных тестов работает нормально, но не шесть.

Да, у меня более пяти ядер на моей машине; Я работаю на процессоре Intel i7, который имеет четыре ядра с гиперпоточностью, что означает, что я должен быть в состоянии выполнить 8 тестов параллельно.

Теперь я уверен, что есть некоторые другие логические или жесткие ограничения, и я не ожидаю, что смогу запустить на восьми ядрах молниеносно восемь параллельных тестов.

Однако было бы здорово узнать причину, по которой он не запускает более пяти тестов параллельно?

Ответы [ 2 ]

6 голосов
/ 18 августа 2010

Кажется, это ошибка в MSTest. Я наткнулся на ту же проблему, все тесты помечены как прерванные, и в окне «Результаты теста» есть ссылка «Ошибка запуска теста», которая при нажатии выдает следующее сообщение: «Тестовый запуск отменяется», количество зависших тестов превышает максимально допустимое значение "5" ".

Обновление: исправлено в пакете обновления для Visual Studio 2010.

1 голос
/ 16 августа 2010

Это может быть только я, но гиперпоточность не является реальным ядром, поэтому i7 действительно имеет только 4 физических ядра, а не 8. Может быть, это как-то связано с этим.

Или, возможно, есть некоторые настройки BIOSотносительно того, как гиперпоточность может использоваться ОС, которая его предотвращает.

...