Basicamente, gostaria de dizer ao MSTest para executar um pouco de código antes de iniciar uma série de execuções de teste, essencialmente o que eu gostaria de fazer é a mesma coisa que inserir algum código Main()
.
O motivo pelo qual eu gostaria de fazer isso é que eu gostaria de fazer algum registro com log4net durante minhas execuções de teste de integração. Não posso simplesmente usar o log4net.Config.XmlConfigurator
atributo assembly, pois no momento em que ele o lê em meu assembly de teste, ele já foi chamado LoggerManager
. A documentação recomenda configurar o log4net explicitamente no ponto de entrada do código - mas onde está isso em meus testes?
Eu preciso ser capaz de executar meus testes em TestDriven.NET e MSTest runner.
and contains methods that are marked with the TestMethod attribute
.Para conclusão, estas são as opções de "executar código antes" para MSTest:
[AssemblyInitialize]
para executar o código uma vez por assembly, antes de qualquer teste nesse assembly ser executado.[ClassInitialize]
para executar o código uma vez por classe, antes de qualquer teste na classe onde o método é definido.[TestInitialize]
para executar o código antes de cada teste na classe onde o método é definido.fonte
Eu vejo isso no cabeçalho do MS Test.
Isso seria executado antes dos testes em uma classe.
Parece que você deseja executar algo antes de todos os testes.
Também existe a opção de script de instalação na configuração de execução de teste.
fonte