1

如何将数据从 testrunner 传递到 unittest?

例如主机的output path或?interface configuration

4

1 回答 1

2

你可能已经走了一条不同的路,但我想分享一下。在 NUnit 的 2.5 后版本中,实现了通过外部源驱动测试用例的能力。我使用 CSV 文件做了一个简单示例的演示。

CSV 包含我的两个测试输入和预期结果。所以第一个是1,1,2,依此类推。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
namespace NunitDemo
{
    public class AddTwoNumbers
    {
        private int _first;
        private int _second;

        public int AddTheNumbers(int first, int second)
        {
            _first = first;
            _second = second;

            return first + second;
        }
    }

    [TestFixture]
    public class AddTwoNumbersTest 
    {

        [Test, TestCaseSource("GetMyTestData")]
        public void AddTheNumbers_TestShell(int first, int second, int expectedOutput)
        {
            AddTwoNumbers addTwo = new AddTwoNumbers();
            int actualValue = addTwo.AddTheNumbers(first, second);

            Assert.AreEqual(expectedOutput, actualValue, 
                string.Format("AddTheNumbers_TestShell failed first: {0}, second {1}", first,second));
        }

        private IEnumerable<int[]> GetMyTestData()
        {
            using (var csv = new StreamReader("test-data.csv"))
            {
                string line;
                while ((line = csv.ReadLine()) != null)
                {
                    string[] values = line.Split(',');
                    int first = int.Parse(values[0]);
                    int second = int.Parse(values[1]);
                    int expectedOutput = int.Parse(values[2]);
                    yield return new[] { first, second, expectedOutput };
                }
            }
        }
    }
}

然后,当您使用 NUnit UI 运行它时,它看起来像(出于示例目的,我包含了一个失败:

在此处输入图像描述

于 2013-06-18T05:03:35.877 回答