2017-02-02 4 views
1

Кто-нибудь еще это сделал? Если я объявляю класс [TestFixture] с атрибутом [Parallelizable], я не могу запустить этот единственный тестовый класс параллельно с несколькими экземплярами браузера (Selenium). Добавлено до 4 сборок в Resharper -> Options -> Unit Testing, не помогло. Однако, если у меня есть несколько разных тестовых классов с атрибутом [Parallelizable], они работают параллельно, как ожидалось, в тестовой консоли R #. Какой-то важный момент я не вижу?Resharper. Как запустить один и тот же класс NUnit TestFixture параллельно?

ответ

1

Ваш вопрос не хватает некоторых деталей, поэтому я предполагаю, что у вас есть что-то вроде ...

[Parallelizable] 
[TestFixture("browser1")] 
[TestFixture("browser2")] 
[TestFixture("browser3")] 
public class MyTestClass 
{ 
    public MyTestClass(string browserName) { ... } 
    ... 
} 

Это создает структуру тестов, как это ...

MyTestClass 
    MyTestClass("browser1") 
    MyTestClass("browser2") 
    MyTestClass("browser3") 

То есть, вы получаете тестовый набор, содержащий три экземпляра прибора. Каждое приспособление, конечно же, содержит в свою очередь все те тесты, которые вы написали.

Атрибут [Parallelizable] относится к комплексу, а не к отдельным тестам. Набор может работать параллельно с другими параллелизуемыми наборами, светильниками и тестами. Но отдельные светильники в наборе не параллельны.

В моем примере я могу сделать отдельные светильники параллельными, используя [Parallelizable(ParallelScope.Fixtures)]. Это говорит: «С этой точки вниз вы можете распараллелить светильники».

По общему признанию, это довольно неясная точка. Мы должны выяснить, как это сделать.

В любом случае ... если бы я догадался, думаю, я ответил на ваш вопрос. Если бы я этого не сделал, возможно, вы могли бы отредактировать его, чтобы мы лучше стреляли в помощь.

+0

Чтобы быть более детальным: У меня есть [TestFixture] [параллелизуемая (ParallelScope.Fixtures)] класс SomeTest общественности() { [OneTimeSetUp] общественных недействительный setupMethod() {// некоторый код здесь } [Test] общественных недействительный initialTest() {// некоторый код здесь } [OneTimeTearDown] общественных недействительный tearDownMethod() {// некоторый код здесь } – President

+0

вопрос заключается в том, если мы можем объявить, сколько раз SomeTest класса будет работать параллельно. Что-то вроде [Parallelizable (ParallelScope.Fixtures) = 3] или [Parallelizable (ParallelScope.Fixtures) = 5] – President

+0

Если вы используете '[TestFixture]' без аргументов, у вас нет параметризованного тестового прибора, поэтому он будет экземпляр и выполняется только один раз. Атрибут Parallelizable не имеет ничего общего с созданием экземпляров, только если они работают параллельно. Синтаксис, который вы хотите, не существует. Вы должны отредактировать исходный вопрос, чтобы показать какой-то код, так как он довольно неразборчив в комментарии, и, возможно, мы можем попробовать другой ответ. – Charlie

 Смежные вопросы

  • Нет связанных вопросов^_^