Tengo una solución que tiene una aplicación de consola y de la prueba de unidad.

var target = new Validator();
var targetFile = @"C:\Folder\SubFolder\AnotherSubFolder\Development\DEV\src\UnitTest\TargetFolder\file.xml";

bool actual = target.Validate(targetFile);
Assert.AreEqual(true, actual);

El Validador se encuentra en el proyecto de aplicación de consola, mientras que mi file.xml se encuentra en la carpeta dentro de la unidad de proyecto de prueba.

Esta unidad de prueba está pasando, sin embargo, quiero asegurarme de que cuando me registre en este en mi tfs o servidor de generación, todavía se puede localizar a mi targetFile.

Cómo voy a cambiar la ruta de acceso de la targetFile?

Gracias de antemano!

  • ¿Qué marco de pruebas unitarias estás usando?
  • Marco? Es de 4.0
InformationsquelleAutor Gerald | 2013-07-05

5 Comentarios

  1. 7

    Si entendí el problema correctamente, no es bueno que el código de producto(en aplicación de consola) depende de un elemento en el proyecto de prueba, así que te recomiendo para mover file.xml para el código de producto del proyecto.

    Para resolver su camino problema, creo que el mejor enfoque es utilizar la Copia en el Directorio de Salida propiedad como Copia siempre o Copiar si es posterior, que se puede encontrar en el VS de la ventana Propiedades.

    Echa un vistazo a los siguientes pasos.

    1. Hacer una carpeta si es necesario para poner en file.xml en el producto del proyecto(por ejemplo. Carpeta de datos).
    2. Poner file.xml en la carpeta.
    3. Ir a la VS la ventana de Propiedades de file.xml.
    4. Conjunto Acción de generación a Ninguno y Copia en el Directorio de Salida a Copia siempre o Copiar si es posterior.
    5. Construir y hacer pruebas de unidad como

      Assert.IsTrue(File.Exists(@"Data\file.xml"));

      En este caso, VS convertirá automáticamente a la carpeta de datos con file.xml en la carpeta de resultados de la prueba de proyecto.

    • Esto es lo que actualmente estoy haciendo ahora. Sin embargo, no sé cómo cambiar la ruta de acceso de archivo de destino al ser una ruta de acceso relativa para que yo pueda asegurarse de que no tendrá ningún problema en el servidor de compilación.
    • Creo que lo importante es coger la ubicación actual en el proyecto de prueba. Normalmente, la posición correcta es lo mismo con la carpeta de salida(bin\debug) de proyecto de prueba. De acuerdo con el marco de prueba, la carpeta de salida puede ser copiado en otra parte, que se llama copia de sombra. Sin embargo, en este caso no hay problema porque la ruta de acceso relativa no está roto.
    • Gracias por que Jin-Wook! Muy útil.
  2. 3

    Encontré la solución a mi problema. He utilizado este:

    "..\..\..\TestFileFolder\myFile.xml"
  3. 0

    La ubicación de Validator no debería ser relevante. Cualquier ruta de acceso relativa debe ser relativa al directorio de tu aplicación de la prueba se está ejecutando, así que acaba de establecer targetFile a ser una ruta relativa desde allí.
    A continuación, asegúrese de que está ejecutando las pruebas en la misma ubicación relativa en el bulid servidor como en el dev de la máquina.

    Bono sugerencia: utilice Assert.IsTrue(actual);

Dejar respuesta

Please enter your comment!
Please enter your name here