Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os metadados DeploymentItem identificam dependências de arquivos e pastas para os arquivos e pastas 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 na máquina de teste especificada).
A implementação do Taef DeploymentItem é muito semelhante à encontrada na classe DeploymentItemAttribute no VSTS.
Os metadados DeploymentItem podem ser aplicados em nível de assembly, classe ou teste. Os itens especificados pelos metadados do DeploymentItem serão implementados por ocasião da execução da configuração correspondente (assembly, classe de teste ou teste). 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, será registado um erro que resultará na falha do teste (ou de todos os testes da classe ou do conjunto, conforme aplicável). O TAEF implantará arquivos apenas uma vez por assembly, classe ou teste - ou seja, a implantação não acontece em cada assembly, classe ou expansão de teste se estes forem orientados por dados.
Sintaxe
[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]
onde FileOrFolderToDeployé um caminho de arquivo ou pasta relativo ao diretório onde a dll de teste está. Se FileOrFolderToDeploy for uma pasta, todo o seu 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órios.
DestinationFolder é um caminho de pasta relativo ao diretório onde a dll de teste está e onde os itens de implantação são copiados. O caminho DestinationFolder pode ser especificado usando .. notação (por exemplo, ../MeusFicheiros).
Para implantar na pasta onde sua dll de teste está, você pode omitir DestinationFolder.
[DeploymentItem("FileOrFolderToDeploy")]
Várias partes da propriedade são suportadas. Por exemplo:
[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
...
}
Exemplos
[DeploymentItem("file1.xml")]
Tags file1.xml que estão localizadas ao lado da dll de teste como dependências. Esses metadados podem ser interpretados como que o sistema implanta um item chamado file1.xml localizado na pasta ao lado da dll de teste para o diretório da dll de teste. Essa configuração só é útil para cenários entre máquinas.
[DeploymentItem("file2.xml", "DataFiles")]
Implanta um item chamado file2.xml localizado ao lado da dll de teste para o 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 abaixo do diretório de implantação. Todos os arquivos e diretórios dentro de MyDataFiles serão implantados para testar o diretório dll. Para copiar toda a estrutura de diretórios 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 para o qual %myDir% resolve. Se o TAEF não conseguir resolver a variável de ambiente, ele lançará 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 (decorado pelo atributo [TestClass]) ou assembly de teste. No entanto, como o VSTS não oferece suporte a essa propriedade no nível de assembly, para aplicar essa propriedade no nível de assembly, você precisa aplicá-la à configuração de 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 que para testes nativos:
<method name="TestOne">
<TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>