2

我在 VS 2015 Update 3 中使用 xUnit v2.2.0 和 xunit.runner.visualstudio v2.2.0。

当我在测试资源管理器中右键单击一项测试以调试一项 Theory 时,运行程序会执行这两项测试,而不是我选择的一项。

using WebPage.PageObjects;
using Tests.Data;
using System;
using Xunit;
using Xunit.Extensions;
using static Tests.Data.PasswordsData;

namespace xUnit.Net.Tests
{
    public class xUnit_POC: IDisposable
    {
        [Theory]
        [ExcelData(@"C:\TestScenarios.xls", "Select * from TestScenarios")]
        public void xUnit_ChangePassword_wXLS(string CurrentPassword, string NewPassword, string ExpectedResult)
        {
            // Test Code goes here...
        }

        [Theory]
        [ClassData(typeof(PasswordsData))]
        public void xUnit_ChangePassword_wObject(PasswordsList testData)
        {
            // Test Code goes here...
        }
    }
}

另一方面,当我将它们分成两个类时,我选择调试的唯一测试运行:

using WebPage.PageObjects;
using Tests.Data;
using System;
using Xunit;
using Xunit.Extensions;
using static Tests.Data.PasswordsData;

namespace xUnit.Net.Tests
{
    public class xUnit_POC 
    {
        public class TestWithObject : IDisposable
        {
            [Theory]
            [ClassData(typeof(PasswordsData))]
            public void xUnit_ChangePassword_wObject(PasswordsList testData)
            {
                // Test Code goes here...
            }
        }

        public class TestWithList : IDisposable
        {
            [Theory]
            [ExcelData(@"C:\TestScenarios.xls", "Select * from TestScenarios")]
            public void xUnit_ChangePassword_wXLS(string CurrentPassword, string NewPassword, string ExpectedResult)
            {
                // Test Code goes here...
            }
        }
    }
}

这是正常行为吗?如果没有,我该如何解决这个问题?

4

0 回答 0