Compartir a través de


Metadatos de DeploymentItem

Los metadatos deploymentItem identifican las dependencias de archivos y carpetas de los archivos y carpetas que usan las pruebas durante la ejecución de las pruebas para que Taef pueda identificarlos y copiarlos correctamente (por ejemplo, en un escenario de ejecución entre máquinas, Taef implementará los archivos identificados por la propiedad DeploymentItem en la máquina de prueba especificada).

La implementación de Taef DeploymentItem es muy similar a la que se encuentra en la clase DeploymentItemAttribute en VSTS.

Los metadatos deploymentItem se pueden aplicar en el nivel de ensamblado, clase o prueba. Los elementos especificados por los metadatos deploymentItem se implementarán mediante las ejecuciones de instalación del correspondiente horario (ensamblado, clase de prueba o prueba). Si los metadatos deploymentItem especifican una dependencia (por ejemplo, un archivo) y esa dependencia ya existe en el destino, TAEF realiza una comparación CRC y solo copia el archivo si ha cambiado. Si los metadatos deploymentItem especifican una dependencia y no se encuentra la dependencia, se registra un error que producirá un error en la prueba (o todas las pruebas de ensamblado o clase de prueba, según corresponda). TAEF solo implementará archivos una vez por ensamblado, clase o prueba, es decir, la implementación no se produce en todos los ensamblados, clases o pruebas de expansión si se controlan los datos.

Sintaxis

[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]

donde FileOrFolderToDeployes un archivo o una ruta de acceso de carpeta relativa al directorio donde está el archivo DLL de prueba. Si FileOrFolderToDeploy es una carpeta, se copia todo su contenido; sin embargo, la carpeta en sí no se crea. Si hay una jerarquía de carpetas en FileOrFolderToDeploy, Taef copiará todos estos directorios de forma recursiva, manteniendo su jerarquía de directorios.

DestinationFolder es una ruta de acceso de carpeta relativa al directorio donde se encuentra el archivo DLL de prueba y donde se copian los elementos de implementación. La ruta de acceso DestinationFolder se puede especificar mediante .. notación (por ejemplo, .. \MyFiles).

Para implementar en la carpeta donde está el archivo DLL de prueba, puede omitir DestinationFolder.

[DeploymentItem("FileOrFolderToDeploy")]

Se admiten varias partes de la propiedad. Por ejemplo:

[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
    ...
}

Ejemplos

[DeploymentItem("file1.xml")]  

Las etiquetas file1.xml que se encuentran junto al archivo DLL de prueba como una dependencia. Estos metadatos se pueden interpretar como que el sistema implementa un elemento denominado file1.xml ubicado en la carpeta situada junto al archivo DLL de prueba en el directorio dll de prueba. Esta configuración solo es útil para escenarios entre máquinas.

[DeploymentItem("file2.xml", "DataFiles")]

Implementa un elemento denominado file2.xml ubicado junto al archivo DLL de prueba en el subdirectorio DataFiles creado en el directorio dll de prueba.

[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]  

Implementa todos los elementos y directorios que se encuentran en el directorio C:\\MyDataFiles\\MyDataFiles2\\\ . Esta configuración no crea el directorio MyDataFiles\MyDataFiles2 debajo del directorio de implementación. Todos los archivos y directorios de MyDataFiles se implementarán para probar el directorio dll. Para copiar toda la estructura de directorios MyDataFiles\MyDataFiles2, debe especificar MyDataFiles\MyDataFiles2 como directorio de salida.

[DeploymentItem("%myDir%\\myFile.txt")]

Implementa el archivo myFile.txt si ese archivo existe en el directorio en el que se resuelve %myDir%. Si TAEF no puede resolver la variable de entorno, produce un error.

Pruebas administradas

El atributo DeploymentItem (también conocido como DeploymentItemAttribute) se puede aplicar a un método de prueba (decorado por el atributo [TestMethod], clase de prueba (decorada por el atributo [TestClass] o ensamblado de prueba). Sin embargo, dado que VSTS no admite esta propiedad en el nivel de ensamblado, para aplicar esta propiedad en el nivel de ensamblado, debe aplicarla a la configuración del ensamblado (decorada por el atributo AssemblyInitialize):

[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public  static AssemblySetup(TestContext testContext)
{
    ...
}

Pruebas nativas

En el caso de las pruebas nativas, el formato de propiedad es similar al formato de código administrado. Sin embargo, dado que las propiedades nativas solo tienen un valor único, la ruta de acceso del elemento y el destino opcional se especifican en el valor de propiedad, separados por un carácter "">:

BEGIN_TEST_CLASS(TestClassExample)
    TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()

Pruebas de script

En el caso de las pruebas de script, el formato de propiedad es el mismo que para las pruebas nativas:

<method name="TestOne">
    <TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>