title: .NET testing framework with parallel testcases
body: <p>I have unit tests in my <code>C#</code> project (<code>VisualStudio 2015</code>,<code>Nunit</code>). I want to check methods in many different situations with different parameters, to achieve that, i used <a href="https://github.com/nunit/docs/wiki/TestCaseData" rel="nofollow noreferrer">TestCases</a>. Each test method works very slow - few seconds, and <a href="https://github.com/nunit/docs/wiki/TestCaseData" rel="nofollow noreferrer">TestCases</a> count in my projects grows.</p>
  
  <p>So now testing takes some minutes. I tried to parallel these tests, by moving each test to separate <a href="https://github.com/nunit/docs/wiki/TestFixture-Attribute" rel="nofollow noreferrer">TestFixture</a> - <code>Nunit</code> allows to run <a href="https://github.com/nunit/docs/wiki/TestFixture-Attribute" rel="nofollow noreferrer">TestFixtures</a> in parallel - <a href="https://github.com/nunit/docs/wiki/Parallelizable-Attribute" rel="nofollow noreferrer">Nunit Documentation</a>. It slightly changed situation, but not significantly. I want to parallel tests not on the <a href="https://github.com/nunit/docs/wiki/TestFixture-Attribute" rel="nofollow noreferrer">TestFixture</a> level, but on testcases level. I don't know how to do it. I have read documentation for <code>Nunit</code>, <code>Xunit</code>, <code>MBUnit</code> etc. and didn't found the answer.</p>
  
  <p>How can i run my tests in parallel, in such way that testscases will run simultaneously? Which framework to use?</p>
  
  <p>My tests example in pseudocode:</p>
  
  <pre><code>public static class GeneralTestCases
  {
      public static IEnumerable TestStoresCredentials
      {
          get
          {
              yield return new TestCaseData( ... ).SetName("incorrect password");
              ...
              yield return new TestCaseData( ... ).SetName("incorrect login");
          }
      }
  }
  
  [ TestFixture ]
  [ Parallelizable ]
  internal class GetProducts : BaseTest
  {
      [ Test ]
      [ TestCaseSource( typeof( GeneralTestCases ), "TestCases" ) ]
      public void ReceiveProducts( TestCase case )
      {
          // ------------ Arrange
          var service = CreateService( case.User, case.Key, ... );
  
          // ------------ Act
          var serviceResponse = service.GetProducts(case.SpecialType);
  
          // ------------ Assert
          ...
          serviceResponse.Message.Should().NotBeNullOrEmpty();
          ...
      }
  }
  
  
  [ TestFixture ]
  [ Parallelizable ]
  internal class GetOrders : BaseTest
  {
      [ Test ]
      [ TestCaseSource( typeof( GeneralTestCases ), "TestCases" ) ]
      public void ReceiveOrders( TestCase case )
      {
          // ------------ Arrange
          var service = CreateService( case.User, case.Key, ... );
  
          // ------------ Act
          var serviceResponse = service.GetOrders(case.SpecialType);
  
          // ------------ Assert
          ...
          serviceResponse.Message.Should().NotBeNullOrEmpty();
          ...
      }
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/KFhCa.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KFhCa.png" alt="enter image description here"></a></p>
  
  <p><strong>Update1</strong>:
  I'm thinking about nCrunch, but i don't will it help or not</p>