【问题标题】:Can you Have multiple unit test files你能有多个单元测试文件吗
【发布时间】:2017-07-28 15:30:29
【问题描述】:

我在 Visual Studio 中有两个单元测试文件,例如 test1.cstest2.cs...当我选择运行所有测试时,它只运行来自 test1.cs 的测试。如何让 Visual Studio 从 test1.cstest2.cs 运行测试?

附加信息:如果我从test2.cs 中选择一个测试方法,输出将告诉我“没有找到要运行的测试”。

(test2.cs == ADPReportClassTest.cs)

using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace EmployeeRefreshTest.tests
{
    [TestClass]
    class ADPReportClassTest
    {
        TestContext TestContext { get; set; }

        [TestMethod]
        [DataSource("System.Data.SqlClient", "Server=Localhost;Database=Test_Employee_Refresh;Integrated Security=Yes", "ADPREPORTCLASS_Tuples", DataAccessMethod.Sequential)]
        public void Checkconstructor()
        {
            string filename = TestContext.DataRow["TestFileName"].ToString();
            Assert.AreEqual(filename, filename);
        }
    }
}

【问题讨论】:

  • 我猜你的test2 设置不正确。向我们展示它是如何设置的。
  • @Amy 这是文件的样子
  • 右键文件>属性和“构建动作”
  • @FrancoPettigrosso。因为所有测试都需要public 才能让测试运行者看到它。除非这只是您发布的示例中的错字
  • @Amy 你让我很担心。大声笑

标签: c# visual-studio unit-testing


【解决方案1】:

为了让测试运行者看到所有在测试中使用的相关成员,他们必须是public。因此这将包括所有测试类、它们的测试方法以及数据源所需的任何上下文。

相应地更新测试

[TestClass]
public class ADPReportClassTest //<-- public
{
    public TestContext TestContext { get; set; } //<-- public

    [TestMethod]
    [DataSource("System.Data.SqlClient", "Server=Localhost;Database=Test_Employee_Refresh;Integrated Security=Yes", "ADPREPORTCLASS_Tuples", DataAccessMethod.Sequential)]
    public void Checkconstructor() //<-- public
    {
        string filename = TestContext.DataRow["TestFileName"].ToString();
        Assert.AreEqual(filename, filename);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2010-11-05
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多