Есть ли тестер для .NET-тестов, который может запускать многопоточные приложения, чтобы использовать преимущества многоядерных машин? - PullRequest
4 голосов
/ 12 ноября 2008

В настоящее время я настраиваю CI с помощью круиза Thoughtworks Studios, Gallio для запуска фактов / тестов xunit.net и ncover 2 для покрытия кода.

Я заметил, что выполнение покрытия кода привязывает один из четырех процессоров, которые есть на нашем сервере агента сборки, и поинтересовался, есть ли многопоточный тестовый прогон, который я мог бы использовать вместо этого, чтобы воспользоваться преимуществами других 3 ядра, которые простаивают? У меня был быстрый поиск вокруг, но большинство обращений касаются тестирования многопоточного кода, а не многопоточного выполнения теста ...

Ответы [ 4 ]

2 голосов
/ 28 марта 2009

Gallio реализует параллельное выполнение теста.

1 голос
/ 12 ноября 2008

В NUnit вы можете передать / параметр потока , который запускает выполнение теста в другом потоке. Я полагаю, что было бы не так уж много работы, чтобы иметь пул потоков, из которого можно создавать тесты. Вы должны быть уверены, что в ваших тестах нет зависимостей.

Я бы спросил в списках xUnit.NET или NUnit. Я знаю, что Чарли работает над созданием этой части NUnit 3.0. Вы также можете посмотреть PNunit как расширение. Также есть статья с кем-то, кто работает над получением xUnit.NET в нескольких потоках.

1 голос
/ 28 января 2009

Только вчера я наткнулся на это сообщение Дэймона Пейна:

http://www.damonpayne.com/2008/05/09/ConcurrentUnitTestingWithXUnitNet1.aspx

, где он проходит через написание пользовательского тестового прогона для xUnit.NET, который явно распределяет тестовые случаи, используя класс в качестве единицы параллелизма, чтобы использовать преимущества нескольких ядер.

0 голосов
/ 12 ноября 2008

Если ничего другого, я знаю, что в CruiseControl.NET вы можете одновременно запускать несколько операций. Я думаю, то же самое можно сказать и о круизе. Вы можете выполнить четыре экземпляра на 1/4 каждого теста, а затем объединить результаты. Зная, когда их объединить, может быть трудно.

...