Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os metadados DeploymentItem identificam as dependências de arquivo e pasta para os arquivos e pastas que são usados pelos testes durante a execução dos testes para que o Taef possa identificá-los e copiá-los adequadamente (por exemplo, em um cenário de execução entre máquinas, o Taef implantará os arquivos identificados pela propriedade DeploymentItem no computador de teste especificado).
A implementação do Taef DeploymentItem é muito semelhante à encontrada na classe DeploymentItemAttribute no VSTS.
Os metadados DeploymentItem podem ser aplicados no nível de assembly, classe ou teste. Os itens especificados pelos metadados DeploymentItem serão implantados quando a configuração correspondente (assembly, classe de teste ou teste) for executada. Se os metadados DeploymentItem especificarem uma dependência (por exemplo, um arquivo) e essa dependência já existir no destino, o TAEF fará uma comparação de CRC e só copiará o arquivo se ele tiver sido alterado. Se os metadados de DeploymentItem especificarem uma dependência e a dependência não puder ser encontrada, um erro será registrado que provocará a falha do teste (ou de todos os testes de classe de teste ou todos os testes do assembly, de acordo). O TAEF implantará arquivos apenas uma vez por assembly, classe ou teste, ou seja, a implantação não ocorrerá em cada assembly, classe ou expansão de teste se eles forem controlados por dados.
Sintaxe
[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]
em que FileOrFolderToDeployé um arquivo ou um caminho de pasta relativo ao diretório em que a dll de teste está. Se FileOrFolderToDeploy for uma pasta, todo o conteúdo será copiado; no entanto, a pasta em si não é criada. Se houver uma hierarquia de pastas em FileOrFolderToDeploy, o Taef copiará todos esses diretórios recursivamente, mantendo sua hierarquia de diretório.
DestinationFolder é um caminho de pasta relativo ao diretório onde está a dll de teste e onde os itens de implantação são copiados. O caminho DestinationFolder pode ser especificado usando .. notação (por exemplo, ..\MyFiles).
Para implantar na pasta onde está a dll de teste, você pode omitir DestinationFolder.
[DeploymentItem("FileOrFolderToDeploy")]
Há suporte para várias partes da propriedade. Por exemplo:
[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
...
}
Exemplos
[DeploymentItem("file1.xml")]
As etiquetas file1.xml, que estão ao lado da dll de teste e funcionam como uma dependência. Esses metadados podem ser interpretados como se o sistema implantasse um item chamado file1.xml localizado na pasta ao lado da dll de teste no diretório dll de teste. Essa configuração só é útil para o cenário entre máquinas.
[DeploymentItem("file2.xml", "DataFiles")]
Implanta um item chamado file2.xml localizado ao lado da dll de teste no subdiretório DataFiles criado no diretório dll de teste.
[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]
Implanta todos os itens e diretórios encontrados no diretório C:\\MyDataFiles\\MyDataFiles2\\\. Essa configuração não cria o diretório MyDataFiles\MyDataFiles2 sob o diretório de implantação. Todos os arquivos e diretórios no MyDataFiles serão implantados para testar o diretório dll. Para copiar toda a estrutura de diretório MyDataFiles\MyDataFiles2, você deve especificar MyDataFiles\MyDataFiles2 como um diretório de saída.
[DeploymentItem("%myDir%\\myFile.txt")]
Implanta o arquivo myFile.txt se esse arquivo existir no diretório ao qual %myDir% se refere. Se o TAEF não conseguir resolver a variável de ambiente, ele gerará um erro.
Testes Gerenciados
O atributo DeploymentItem (também conhecido como DeploymentItemAttribute) pode ser aplicado a um método de teste (decorado pelo atributo [TestMethod]), à classe de teste (decorada pelo atributo [TestClass]) ou ao assembly de teste. No entanto, como o VSTS não dá suporte a essa propriedade no nível de assembly, para aplicá-la nesse nível, você precisa atribuí-la à configuração do assembly (decorada pelo atributo AssemblyInitialize):
[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public static AssemblySetup(TestContext testContext)
{
...
}
Testes nativos
Para testes nativos, o formato de propriedade é semelhante ao formato de código gerenciado. No entanto, como as propriedades nativas têm apenas um único valor, o caminho do item e o destino opcional são especificados no valor da propriedade, separados com um caractere '>' :
BEGIN_TEST_CLASS(TestClassExample)
TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()
Testes de script
Para testes de script, o formato de propriedade é o mesmo para testes nativos:
<method name="TestOne">
<TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>