← Back to team overview

nunit-core team mailing list archive

[Bug 731994] Re: Cannot run individual testscases with more than one parameter in nunit-console

 

Sorry, my code formatting came out poorly.  Here is that block:

namespace GetTestsProj 
{
     [TestFixture]
     class NunitConsoleTest
     {
         [TestCase(1,2,3)]
         [Test, Description("A simple test with parameterized numeric inputs")]
         public void TestNumeric(int a, int b, int c)
         {
             Assert.AreEqual(c, a + b);
         }
 
         [TestCase("My String")]
         [Test, Description("A simple test with parameterized string input")]
         public void TestSingleString(string a)
         {
             Assert.AreEqual("My String", a);
         }

         [TestCase("String1", "String2")]
         [Test, Description("A simple test with parameterized numeric inputs")]
         public void TestTwoStrings(string a, string b)
         {
             Assert.AreEqual("String1", a);
         }
     }
}

-- 
You received this bug notification because you are a member of NUnit
Core Developers, which is the registrant for NUnit Framework.
https://bugs.launchpad.net/bugs/731994

Title:
  Cannot run individual testscases with more than one parameter in
  nunit-console

Status in NUnit Test Framework:
  New

Bug description:
  I can run an individual testcase which takes a single string value
  with no problems from the command line:

  For example /run:Namespace.Class.Method("my input string")

  However the same procedure doesn't seem to work for me with numerical
  inputs

  For example: /run:Namespace.Class.Method(1,2,3)

  The output lists the correct input as a 'test to run' but does not
  actually run any tests

  Looking into this further, it appears that the problem is with tests
  which take more than one argument. Using the following test file:

  namespace GetTestsProj {     [TestFixture]     class NunitConsoleTest
  {         [TestCase(1,2,3)]         [Test, Description("A simple test
  with parameterized numeric inputs")]         public void
  TestNumeric(int a, int b, int c)         {
  Assert.AreEqual(c, a + b);         }          [TestCase("My String")]
  [Test, Description("A simple test with parameterized string input")]
  public void TestSingleString(string a)         {
  Assert.AreEqual("My String", a);         }
  [TestCase("String1", "String2")]         [Test, Description("A simple
  test with parameterized numeric inputs")]         public void
  TestTwoStrings(string a, string b)         {
  Assert.AreEqual("String1", a);         }     } } The call nunit-
  console.exe /run:GetTestsProj.NunitConsoleTest
  GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll properly runs all
  3 testcases

  The call nunit-console.exe
  /run:GetTestsProj.NunitConsoleTest.TestNumeric
  GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll properly runs 1
  testcase

  The call nunit-console.exe
  /run:"GetTestsProj.NunitConsoleTest.TestSingleString(\"My String\")"
  GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll properly runs 1
  testcase

  However, the call nunit-console.exe
  /run:GetTestsProj.NunitConsoleTest.TestNumeric(1,2,3)
  GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll runs 0 testcases

  And similarly the call nunit-console.exe
  /run:"GetTestsProj.NunitConsoleTest.TestTwoStrings(\"String1\",\"String2\")"
  GetTestsProj\GetTestsProj\bin\debug\GetTestsProj.dll runs 0 testcases

  Although nunit seems to recognize the input /run properly:

  Selected test(s): GetTestsProj.NunitConsoleTest.TestNumeric(1,2,3)
  Tests run: 0, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0 seconds
  Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 and

  Selected test(s):
  GetTestsProj.NunitConsoleTest.TestTwoStrings("String1", "String2")
  Tests run: 0, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0156256
  seconds   Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 This is all
  using NUnit 2.5.9.10348

  I've tried digging around the nUnit code but see no obvious answer of
  what is wrong (I am in fact using
  TypeHelper.GetDisplayName(m.GetType(), args); to generate the
  parameter string, which I would expect to be consistent with internal
  usage).



References