我在 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...
}
}
}
}
这是正常行为吗?如果没有,我该如何解决这个问题?