如何运行我的第一个nunit测试

时间:2015-12-28 08:30:27

标签: c# nunit

我想学习如何使用Nunit测试。我有这个简单的代码:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter two numbers\n");
        int number1;
        int number2;
        number1 = int.Parse(Console.ReadLine());
        number2 = int.Parse(Console.ReadLine());

        MathsHelper helper = new MathsHelper();
        int x = helper.Add(number1, number2);
        Console.WriteLine("\nThe sum of " + number1 +
            " and " + number2 + " is " + x);
        Console.ReadKey();
        int y = helper.Subtract(number1, number2);
        Console.WriteLine("\nThe difference between " +
              number1 + " and" + number2 + "  is " + y);
        Console.ReadKey();
    }
}

public class MathsHelper
{
    public MathsHelper() { }
    public int Add(int a, int b)
    {
        int x = a + b;
        return x;
    }

    public int Subtract(int a, int b)
    {
        int x = a - b;
        return x;
    }

我还创建了一个单元测试:

[TestFixture]
    public class TestClass
    {
        [TestCase]
        public void AddTest()
        {
            MathsHelper helper = new MathsHelper();
            int result = helper.Add(20, 10);
            Assert.AreEqual(30, result);
        }

        [TestCase]
        public void SubtractTest()
        {
            MathsHelper helper = new MathsHelper();
            int result = helper.Subtract(20, 10);
            Assert.AreEqual(10, result);
        }
    }
}

我从Nuget Nunit.runner,Nunit.concole和Nunit.adapter下载。但是,如果我运行所有测试,它表示我的项目中没有任何测试。也许你可以帮助我?

2 个答案:

答案 0 :(得分:0)

尝试更改测试下的默认过程架构>测试设置>默认的Proccessor架构和重建解决方案。

答案 1 :(得分:0)

您正在使用[TestCase]属性将该方法标记为测试。这适用于参数化测试。您的测试没有参数化,这就是它无法正常工作的原因。

在您的情况下应使用

[Test]属性。请参考TestAttribute doc

  

Test属性是将TestFixture类中的方法标记为测试的一种方法。它通常用于简单(非参数化)测试...

尝试以下方法:

    ...

    [Test]
    public void AddTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Add(20, 10);
        Assert.AreEqual(30, result);
    }

    ...

这应该有效。