我知道MSTest不支持RowTest和类似的测试.
什么是MSTests用户怎么办?如何在没有RowTest支持的情况下生活?
我已经看过DataDriven测试功能,但听起来有太大的开销,是否有任何第三方补丁或工具允许我进行RowTest类似的测试MSTest?
你在jUnit中用什么来编写数据驱动的测试?
(我的定义)数据驱动测试是从一些外部源(文件,数据库......)读取数据,每行/文件/执行一次测试的测试,并在测试运行器中显示结果,就好像你有单独的测试 - 每次运行的结果是单独显示的,而不是一个巨大的聚合.
当您使用[Theory]连同[InlineData]它会创建提供了在线数据的每个项目的测试.但是,如果您使用[MemberData]它,它将只显示为一个测试.
有没有办法让[MemberData]测试显示为多个测试?
我们希望针对一组数据运行我们的一些测试,验证每个测试的条件是否相同.数据当前存储在平面文件或简单的Excel电子表格中.
我的第一个想法是创建一个TestNG DataProvider,它将从文件加载数据,并用于为每个数据值调用一次测试方法.我的问题是不同的测试需要从不同的文件加载数据,似乎没有任何方法可以将参数发送到DataProvider. 有谁知道这是否可能?
理想情况下,我希望我的代码看起来像以下(简化示例):
public class OddTest {
    @DataProvider(name = "excelLoader")
    public Iterator<Object[]> loadExcelData(String fileName) {
        ...
    }
    @Test(dataProvider = "excelLoader" dataProviderParameters = { "data.xls" })
    public void checkIsOddWorks(int num)
        assertTrue(isOdd(num));
    }
}
我与下面链接的问题基本上有相同的问题,但我似乎无法让它工作.我得到"无法将索引[]应用于System.Data.DataRow类型的表达式".据我所知,我已正确实施了解决方案.
[TestClass]
public class UnitTest1
{
    private TestContext testContextInstance;
    public TestContext TestContext
    {
        get
        {
            return testContextInstance;
        }
        set
        {
            testContextInstance = value;
        }
    }        
    private ServiceReference1.ProductCatalogClient client = new ServiceReference1.ProductCatalogClient("BasicHttpBinding_IProductCatalog");
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\CountList.csv", "CountList#csv", DataAccessMethod.Sequential), DeploymentItem("..\\ServiceTest\\CountList.csv"), TestMethod]
    public void AreCountsCorrect()
    {
        int id = TestContext.DataRow["Id"] as int;
        int count = client.GetProductCount(id);
        Assert.IsTrue(count == TestContext.DataRow["Count"] as int);
    }
}
我正在使用Nunit和数据驱动的测试方法开发测试.我有2个参数的测试方法:xlsx文件的路径和工作表名称.当我在TestCase属性中传递参数时,它在Visual Studio中工作得很完美,例如,当我想运行3个测试用例时,必须编写如下内容:
[TestCase(@"pathToFile.xlsx", "TestCase1")]
[TestCase(@"pathToFile.xlsx", "TestCase2")]
[TestCase(@"pathToFile.xlsx", "TestCase3")]
public void performActionsByWorksheet(string excelFilePath, string worksheetName)
{    
    //test code
}
我想运行我的测试用例并使用Nunit Console传递参数(不要在代码中编写参数).
有可能实现吗?
我使用MsTest框架实现了数据驱动测试.
我想知道是否有办法从TestContext对象获取当前测试代码的迭代/行号?
据我所知,与DDT相关的唯一属性是DataRow,它允许从数据源获取当前迭代的信息,但我没有看到任何属性给我我需要的东西.
测试依赖于数据库数据的API的最佳实践是什么?在作为构建过程的一部分运行单元测试的"持续集成"环境中,我需要注意哪些问题?我的意思是你将数据库部署为构建脚本的一部分(可能运行安装程序),还是应该使用硬编码数据[使用XML进行MSTest数据驱动单元测试]?
我知道我可以模拟业务逻辑层的数据层但是如果我在DAL的SQL语句中遇到问题怎么办?我确实需要点击数据库,对吧?
嗯......这是一大堆问题:)...想法?
在MSTest中,您可以执行以下操作:
[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
            "testdata.csv", "testdata#csv", DataAccessMethod.Sequential)]
public void TestSomething()
{
    double column1 = Convert.ToDouble(TestContext.DataRow["column1"]);
    ...
    Assert.AreEqual(...);
}
NUnit 2.5中的等效代码是什么?
如何在数据驱动的测试中设置数据行的DisplayName,其中数据源是XML,提供者是Microsoft.VisualStudio.TestTools.DataSource.XML.
XML:
<?xml version="1.0" encoding="utf-8" ?>
<environments>
    <environment><name>IE</name></environment>
    <environment><name>Chrome</name></environment>
</environments>
App配置:
<!-- CONNECTION STRINGS SETTINGS -->
<connectionStrings>
    <add name="IE_Chrome" connectionString="IE_Chrome.xml" providerName="Microsoft.VisualStudio.TestTools.DataSource.XML"/>
</connectionStrings>
<!-- PARAMETERIZING TEST SETTINGS -->
<microsoft.visualstudio.testtools>
    <dataSources>
        <add name="IE_Chrome" connectionString="IE_Chrome" dataTableName="environment" dataAccessMethod="Sequential"/>
    </dataSources>
</microsoft.visualstudio.testtools>
输出:

我想显示环境名称而不是"数据行0".
mstest xmldatasource data-driven-tests visual-studio-2012 test-reporting