Кто-нибудь еще это сделал? Если я объявляю класс [TestFixture]
с атрибутом [Parallelizable]
, я не могу запустить этот единственный тестовый класс параллельно с несколькими экземплярами браузера (Selenium). Добавлено до 4 сборок в Resharper -> Options -> Unit Testing, не помогло. Однако, если у меня есть несколько разных тестовых классов с атрибутом [Parallelizable]
, они работают параллельно, как ожидалось, в тестовой консоли R #. Какой-то важный момент я не вижу?Resharper. Как запустить один и тот же класс NUnit TestFixture параллельно?
ответ
Ваш вопрос не хватает некоторых деталей, поэтому я предполагаю, что у вас есть что-то вроде ...
[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)]
. Это говорит: «С этой точки вниз вы можете распараллелить светильники».
По общему признанию, это довольно неясная точка. Мы должны выяснить, как это сделать.
В любом случае ... если бы я догадался, думаю, я ответил на ваш вопрос. Если бы я этого не сделал, возможно, вы могли бы отредактировать его, чтобы мы лучше стреляли в помощь.
Чтобы быть более детальным: У меня есть [TestFixture] [параллелизуемая (ParallelScope.Fixtures)] класс SomeTest общественности() { [OneTimeSetUp] общественных недействительный setupMethod() {// некоторый код здесь } [Test] общественных недействительный initialTest() {// некоторый код здесь } [OneTimeTearDown] общественных недействительный tearDownMethod() {// некоторый код здесь } – President
вопрос заключается в том, если мы можем объявить, сколько раз SomeTest класса будет работать параллельно. Что-то вроде [Parallelizable (ParallelScope.Fixtures) = 3] или [Parallelizable (ParallelScope.Fixtures) = 5] – President
Если вы используете '[TestFixture]' без аргументов, у вас нет параметризованного тестового прибора, поэтому он будет экземпляр и выполняется только один раз. Атрибут Parallelizable не имеет ничего общего с созданием экземпляров, только если они работают параллельно. Синтаксис, который вы хотите, не существует. Вы должны отредактировать исходный вопрос, чтобы показать какой-то код, так как он довольно неразборчив в комментарии, и, возможно, мы можем попробовать другой ответ. – Charlie