Práticas recomendadas de teste de integração

Nossa equipe tem centenas de testes de integração que atingem um banco de dados e verificam resultados. Eu tenho duas classes base para todos os testes de integração, um para testes somente para recuperação e um para testes create / update / delete. A classe base somente para recuperação regenera o banco de dados durante o TestFixtureSetup, portanto, ele só é executado uma vez por classe de teste. A classe base CUD regenera o banco de dados antes de cada teste. Cada classe de repositório possui sua própria classe de teste correspondente.

Como você pode imaginar, essa coisa toda leva algum tempo (aproximando 7-8 minutos para rodar e crescer rapidamente). Ter essa execução como parte de nosso CI (CruiseControl.Net) não é um problema, mas a execução local leva muito tempo e realmente proíbe executá-los antes de confirmar o código.

Minha pergunta é se há alguma prática recomendada para ajudar a acelerar a execução desses tipos de testes de integração?

Não consigo executá-los na memória (a sqlite) porque usamos algumas funcionalidades específicas do banco de dados (colunas calculadas, etc.) que não são suportadas no sqlite.

Além disso, toda a equipe precisa ser capaz de executá-los, portanto, executá-los em uma instância local do SQL Server Express ou algo pode ser propenso a erros, a menos que as cadeias de conexão sejam todas iguais para essas instâncias.

Como você está realizando isso em sua loja e o que funciona bem?

Obrigado!

questionAnswers(5)

yourAnswerToTheQuestion