Skip to content

SetupFixture without namespace will make assembly-level Parallelable attribute useless #1905

@kfstorm

Description

@kfstorm

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>

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions