Pruebas impulsadas por datos en MSTEST - Problema con TestContext.Datarow
-
24-10-2019 - |
Pregunta
Esencialmente tengo el mismo problema que la pregunta vinculada a continuación, pero parece que no puedo hacer que funcione. Estoy obteniendo "no puedo aplicar la indexación [] a una expresión de type system.data.datarow". Por lo que puedo decir, he implementado la solución correctamente.
Problemas con las pruebas impulsadas por datos en MSTEST
[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);
}
}
Solución
Agregar una referencia a System.Data
al proyecto de prueba. No tengo idea de por qué eso no se incluiría automáticamente ya que Datarow se usa para pruebas de datos.
Otros consejos
Debe agregar referencia a su proyecto de prueba para solucionar este problema. No sé por qué VS2013 no lo agrega automáticamente.
Haga clic con el botón derecho en su proyecto de prueba, add-> referencia ...-> ensamblajes-> framework-> system.data, verifíquelo.
¡Hecho!
Tuve el mismo problema que tú con this.testContext.datarow ["PathFile_original"], lo que estaba haciendo mal era tan simple que no agregué la referencia a System.Data, eso era todo.
Es bastante fácil de arreglar, asegúrese de que ya tenga biblioteca.
Salud
Para solucionar su problema, como han dicho otros, debe agregar una referencia a System.Data
en tu proyecto.
Si todavía tiene un problema después de que se haya agregado esa referencia, es posible que deba reiniciar Visual Studio y eliminar cualquier referencia redundante o using
encabezados.
este esta trabajando conmigo
[TestMethod]
[TestCategory("Category 4")]
[DataSource("MyExcelDataSource")]
[DeploymentItem("UnitTestProject\\DBConnections.xlsx")]
public void testwithexceldata()
{
//http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.testcontext.datarow.aspx
int x = TestContext.DataRow.Table.Rows.Count;
int Balance = Convert.ToInt32(TestContext.DataRow["Balance"]);
int Amount = Convert.ToInt32(TestContext.DataRow["Amount"]);
Assert.AreEqual(Balance, Amount);
}