并非我所有的Nunit测试方法都在测试资源管理器中可见



我正在添加与Nunit的Unity测试的自动化,以测试我公司正在使用的现有房屋开发的C#应用程序。如果我使用两个测试,则只有一个可见并运行。

我正在使用Visual Studio 2019 Professional和Nunit v3.11.0与Nunit3TestAdapter v3.13.0。

我创建了两个实现iEnumerator的类,以及两种使用我的测试文件中数据的方法,即在上述类中定义的简单.csv。

 // Test 1 - success (ok dates)
public class DonneesTestOK : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        var reader = new StreamReader(File.OpenRead(
                        @"C:GIT_Repondm1001TestSucces.csv"));
        while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            var values = line.Split(',');
            string psDatesDebut = values[0];
            yield return new string[] { psDatesDebut };
        }
    }
}
// Test 2 - fail (bad dates)
public class DonneesTestPasOK : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
       var reader = new StreamReader(File.OpenRead(
                        @"C:GIT_Repondm1001TestEchec.csv"));
        while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            var values = line.Split(',');
            string psDatesDebut = values[0];
            yield return new string[] { psDatesDebut };
        }
    }
}

我还创建了两种使用相应数据文件测试主应用程序的方法。

[TestFixture]
public class TestNUnit
{
    // test 1 - succes (ok dates)
    [TestCaseSource(typeof(DonneesTestOK))]
    public void TestNDM1001OK(string[] psDatesDebut)
    {
        int intCodeRetour = 0x00;
        int expected = intCodeRetour;
        Assert.That(Program.Main(psDatesDebut), Is.EqualTo(expected));
    }
    // test 2 - echec (bad dates)
    [TestCaseSource(typeof(DonneesTestPasOK))]
    public void TestNDM1001PasOK(string[] psDatesDebut)
    {
        int expected = 8;
        Assert.That(Program.Main(psDatesDebut), Is.EqualTo(expected));
    }
}

唯一的 testndm1001ok 可见并运行。

主要方法声明如下:

class Program
{
    public static int Main(string[] args)
...
}

与其他应用程序中的测试一样,代码应测试主应用程序,并使用正确的数据生成输出文件。我用.csv的一系列日期测试应用程序,并且该应用程序生成了一些输出文件。


修复:

好,这是初学者的错误。我比较了我的VS2017环境,其中两个测试都可以使用,并且VS2019不起作用。

除了在VS2019中的测试Explorer中的"所有运行"one_answers"运行..."选项外,我还注意到了"播放列表"部分,其中选择了播放列表,称为" PASOK"。我想知道为什么会发生这种情况,并记得在星期五我创建了两个播放列表,但不记得我选择了其中任何一个。在VS2017中,什么都没有选择,一切都很好。因此,我将下拉列表更改为VS2019中的"播放列表"所有测试",现在它正在工作。

您是否尝试过安装mstest.testadapter?我对VS2017

有类似的问题

如果您没有看到第二种方法的任何测试,则该方法的源未返回任何数据。为了找出原因,只需调试它是枚举。

相关内容

最新更新