Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 pueden aplicarse en el nivel de ensamblaje, clase o prueba. Los elementos especificados por los metadatos DeploymentItem se implementarán a la hora de las configuraciones correspondientes (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 ensamblaje, clase o prueba; es decir, la implementación no se produce para cada ejecución de ensamblaje, clase o prueba si son impulsadas por datos.
Sintaxis
[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]
donde FileOrFolderToDeployes un archivo o una ruta de acceso de carpeta relativa al directorio donde está la dll de prueba. Si FileOrFolderToDeploy es una carpeta, se copia todo su contenido; sin embargo, la propia carpeta 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 dónde 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 múltiples componentes de la propiedad. Por ejemplo:
[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
...
}
Ejemplos
[DeploymentItem("file1.xml")]
Etiqueta file1.xml que se encuentra ubicada junto al archivo DLL de prueba como dependencia. Estos metadatos se pueden interpretar como que el sistema implementa un elemento denominado file1.xml ubicado en la carpeta 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 con 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>