Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

493
Vistas
Cómo acceder a TestRunParameters dentro del archivo RunSettings

Al leer https://msdn.microsoft.com/en-us/library/jj635153.aspx , he creado un archivo .RunSettings con algunos parámetros similares al ejemplo:

 <TestRunParameters> <Parameter name="webAppUrl" value="http://localhost" /> <Parameter name="webAppUserName" value="Admin" /> <Parameter name="webAppPassword" value="Password" /> </TestRunParameters>

Planeo tener un archivo .RunSettings para cada uno de nuestros entornos con las direcciones URL y las credenciales adecuadas para ejecutar una prueba CodedUI en el entorno del archivo RunSettings especificado.

Puedo ver eso desde la línea de comando para hacer referencia al archivo de configuración que puedo ejecutar:

 vstest.console myTestDll.dll /Settings:Local.RunSettings /Logger:trx vstest.console myTestDll.dll /Settings:QA.RunSettings /Logger:trx

etc...

Pero no veo ninguna forma que diga cómo utilizar realmente los TestRunParameters desde dentro de la prueba codedUI.

Lo que me gustaría hacer es configurar inicializadores de prueba que usen TestRunParameters para determinar dónde iniciar sesión y qué credenciales usar. Algo como esto:

 [TestInitialize()] public void MyTestInitialize() { // I'm unsure how to grab the RunSettings.TestRunParameters below string entryUrl = ""; // TestRunParameters.webAppUrl string userName = ""; // TestRunParameters.webAppUserName string password = ""; // TestRunParameters.webAppPassword LoginToPage(entryUrl, userName, password); } public void LoginToPage(string entryUrl, string userName, string password) { // Implementation }

La información sobre cómo hacer referencia a TestRunParameters es muy apreciada.

EDITAR

 /// <summary> /// Summary description for CodedUITest1 /// </summary> [CodedUITest] public class CodedUITest1 { public static string UserName = string.Empty; [ClassInitialize] public static void TestClassInitialize(TestContext context) { UserName = context.Properties["webAppUserName"].ToString(); Console.WriteLine(UserName); } [TestMethod] public void CodedUITestMethod1() { this.UIMap.RecordedMethod1(); // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. } // Rest of the default class - TestContext instantiation, UI map instantiation, etc }

La excepción que obtengo cuando ejecuto:

Excepcion de referencia nula

ingrese la descripción de la imagen aquí

@williamfalconeruk He actualizado mi clase de prueba como se indicó anteriormente, pero sigo recibiendo el mismo error, ¿alguna idea de lo que estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para aquellos que usan Resharper con este problema, descubrí la solución (no es necesario desactivar Resharper):

  1. Vaya al menú superior de Visual Studio -> Resharper -> Opciones

  2. Busque la sección Herramientas, expanda "Pruebas unitarias"

  3. Haga clic en "MsTest". La casilla de verificación debe estar habilitada, pero la ruta del archivo de configuración de prueba debajo puede estar en blanco. Si es así, haga clic en Examinar y seleccione el archivo de configuración de ejecución que desea utilizar.

  4. Haga clic en guardar, reconstruir e intente ejecutar las pruebas, los parámetros ahora deberían funcionar.

No estoy seguro de por qué, pero simplemente seleccionando el archivo de Configuración de prueba en el menú Pruebas -> Configuración de prueba en realidad no funciona cuando se usa Resharper, por lo que este archivo debe señalarse explícitamente directamente en las opciones de Resharper.

over 4 years ago · Santiago Trujillo Denunciar

0

También me encontré con esto recientemente, ya que queríamos alejarnos del uso de variables de entorno heredado. La solución proporcionada a continuación fue adecuada para nuestras necesidades, pero puede haber una mejor...

Resulta que puede acceder a estos en el TestContext de un método ClassInitialize de su dispositivo de prueba. Hay un diccionario de Properties que tiene estos parámetros, y puede acceder a los valores aquí:

 [ClassInitialize] public static void TestClassinitialize(TestContext context) { var webAppUrl = context.Properties["webAppUrl"].ToString(); //other settings etc..then use your test settings parameters here... }

Nota : estos son estáticos, por lo que si necesita acceder a esto, es posible que deba configurar propiedades estáticas para acceder dentro de su código de prueba.

Una alternativa sugerida es utilizar un enfoque de prueba basada en datos. Aquí hay información básica sobre pruebas basadas en datos que también pueden ayudar: https://msdn.microsoft.com/en-us/library/ms182527.aspx

Como dije, la solución anterior se adaptaba a nuestras necesidades en un nivel básico.

ACTUALIZACIÓN: vea la imagen a continuación en respuesta a la configuración de prueba que devuelve nulo...

Configuración de prueba en Visual Studio

over 4 years ago · Santiago Trujillo Denunciar

0

Esto funciona para mí (VS2017-pro):

 namespace TestApp.Test { [TestClass] public class UnitTest1 { // This enables the runner to set the TestContext. It gets updated for each test. public TestContext TestContext { get; set; } [TestMethod] public void TestMethod1() { // Arrange String expectedName = "TestMethod1"; String expectedUrl = "http://localhost"; // Act String actualName = TestContext.TestName; // The properties are read from the .runsettings file String actualUrl = TestContext.Properties["webAppUrl"].ToString(); // Assert Assert.AreEqual(expectedName, actualName); Assert.AreEqual(expectedUrl, actualUrl); } [TestMethod] public void TestMethod2() { // Arrange String expectedName = "TestMethod2"; // Act String actualName = TestContext.TestName; // Assert Assert.AreEqual(expectedName, actualName); } } }

Asegúrese de seleccionar el archivo de configuración de ejecución que desea usar, aquí: Prueba -> Configuración de prueba.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda