-
Notifications
You must be signed in to change notification settings - Fork 748
Closed
Description
I've tried to combine parallel testing and SetupFixture. But no luck.
I added [assembly:Parallelizable(ParallelScope.Fixtures)]
in code. And if I put SetupFixture into root namespace, then test fixtures in this assembly will run sequentially. However, if I put SetupFixture into the same namespace as other text fixtures, test fixtures can run in parallel.
I've tried both NUnit 3.4.1 and 3.5.0. The results are the same.
Below is a simple file to repro the issue.
using System.Threading;
using NUnit.Framework;
[assembly:Parallelizable(ParallelScope.Fixtures)]
[SetUpFixture]
public class GlobalSetup
{
[OneTimeSetUp]
public void Setup()
{
Thread.Sleep(5000);
}
}
namespace NUnitTest
{
[TestFixture]
public class TestFixture1
{
[Test]
public void Test1()
{
Thread.Sleep(5000);
}
}
[TestFixture]
public class TestFixture2
{
[Test]
public void Test2()
{
Thread.Sleep(5000);
}
}
}
Here is the test result file.
<?xml version="1.0" encoding="utf-8"?>
<test-run id="2" name="NUnitTest.dll" fullname="GlobalSetup" testcasecount="2" result="Passed" start-time="2016-11-18 14:25:20Z" end-time="2016-11-18 14:25:35Z" duration="15.037411" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0" random-seed="1862713937">
<command-line><![CDATA[XXX\NUnit-3.5.0\bin\net-4.5\nunitlite-runner.exe NUnitTest.dll]]></command-line>
<filter />
<test-suite type="SetUpFixture" id="1000" name="NUnitTest.dll" fullname="GlobalSetup" classname="GlobalSetup" runstate="Runnable" testcasecount="2" result="Passed" start-time="2016-11-18 14:25:20Z" end-time="2016-11-18 14:25:35Z" duration="15.037411" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
<environment framework-version="3.5.0.0" clr-version="4.0.30319.42000" os-version="Microsoft Windows NT 6.2.9200.0" platform="Win32NT" cwd="XXX\NUnitTest\NUnitTest\bin\Debug" machine-name="XXX" user="XXX" user-domain="XXX" culture="en-US" uiculture="en-US" os-architecture="x86" />
<settings>
<setting name="WorkDirectory" value="XXX\NUnitTest\NUnitTest\bin\Debug" />
<setting name="NumberOfTestWorkers" value="8" />
</settings>
<properties>
<property name="ParallelScope" value="Fixtures" />
<property name="_PID" value="8328" />
<property name="_APPDOMAIN" value="nunitlite-runner.exe" />
</properties>
<test-suite type="TestSuite" id="1006" name="NUnitTest" fullname="NUnitTest" runstate="Runnable" testcasecount="2" result="Passed" start-time="2016-11-18 14:25:25Z" end-time="2016-11-18 14:25:35Z" duration="10.023981" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-suite type="TestFixture" id="1001" name="TestFixture1" fullname="NUnitTest.TestFixture1" classname="NUnitTest.TestFixture1" runstate="Runnable" testcasecount="1" result="Passed" start-time="2016-11-18 14:25:25Z" end-time="2016-11-18 14:25:30Z" duration="5.011831" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1002" name="Test1" fullname="NUnitTest.TestFixture1.Test1" methodname="Test1" classname="NUnitTest.TestFixture1" runstate="Runnable" seed="1420857753" result="Passed" start-time="2016-11-18 14:25:25Z" end-time="2016-11-18 14:25:30Z" duration="5.003950" asserts="0" />
</test-suite>
<test-suite type="TestFixture" id="1003" name="TestFixture2" fullname="NUnitTest.TestFixture2" classname="NUnitTest.TestFixture2" runstate="Runnable" testcasecount="1" result="Passed" start-time="2016-11-18 14:25:30Z" end-time="2016-11-18 14:25:35Z" duration="5.004199" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1004" name="Test2" fullname="NUnitTest.TestFixture2.Test2" methodname="Test2" classname="NUnitTest.TestFixture2" runstate="Runnable" seed="2116975853" result="Passed" start-time="2016-11-18 14:25:30Z" end-time="2016-11-18 14:25:35Z" duration="5.000674" asserts="0" />
</test-suite>
</test-suite>
</test-suite>
</test-run>