2008-11-12 11 views
4

В настоящее время я настраиваю CI, используя круиз Toughtworks Studios, Gallio для запуска фактов/тестов xunit.net и ncover 2 для покрытия кода.Есть ли тестовый бегун для тестов .NET, который может работать многопоточно, чтобы использовать многоядерные машины?

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

ответ

0

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

1

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

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

1

Только вчера я наткнулся на этот пост Дэймоном Payne:

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

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