Azure DevOps имеет возможность запускать тесты Visual Studio для нескольких агентов параллельно .Я хотел бы воспользоваться этим, но когда я обновил свой конвейер сборки для работы с несколькими агентами со стратегией Based on past running time of tests
, каждому агенту назначается как минимум одна вся тестовая сборка (т. Е. TestSuite1.dll,TestSuite2.dll и т. Д.).Это означает, что существует огромная возможность распараллелить потерянный для каждого из наших независимых MSTest TestClass
, потому что наши тесты были разработаны с областью выполнения на уровне класса.
Наш конвейер Azure DevOps успешно выполняется с распараллеливаниеммежду агентами на базовую тестовую сборку, но, очевидно, мы бы предпочли нарезку на каждый отдельный тест в нашей тестовой сборке, поэтому какова лучшая стратегия для достижения разделения каждого производного TestClass по агентам (желательно без рефакторинга всего нашего тестового кода))?
Примечания:
Я сгенерировал xml, чтобы «успешно» встроить ровно один TestClass
в свой собственный .dll, а затем сослаться только на этот .dll в задаче Visual Studio Test
,но существует просто ассамблея bazillion, ссылающаяся на проблемы \ redirect, когда фактический класс начинает выполняться после кода [AssemblyInitialize]
.Поскольку у меня есть выходные данные сборки для всего нашего решения, у меня есть доступ к команде csc
, запускаемой для всей тестовой сборки, но, опять же, я еще не смог ее протестировать, и я предполагаю, что просто ссылаюсь на параметры конфигурации в нейбудет хрупким для будущих изменений.Кроме того, я не думаю, что выполнение задачи Visual Studio Test
с чем-либо, кроме Select tests using Test Assemblies
, даст преимущество стратегии нарезки Based on past running time of tests
.