2008-10-22 17 views
6

Pregunta¿Puede MSTest ejecutar un método específico cada vez que se inicia?

¿Hay una manera de tener un método que siempre ejecutar en cualquier momento que el conjunto de prueba se ejecuta a través MSTest?

Similar a cómo funcionan los atributos [TestInitialize] y [ClassInitialize], pero para todo el conjunto. No quiero tener que agregar código al método [ClassInitialize] de cada clase de prueba.

Razonamiento

Algunos de mis pruebas de interactuar con la base de datos. Borran datos y otras cosas que serían muy perjudiciales para una base de datos de producción. Solo hay un archivo de configuración que le dice al proyecto de prueba de mi unidad que se ejecute en la base de datos que no es de producción.

me sentiría mejor si hubiera un método que se ejecutan en el arranque que dice "Nombre de la base bien no es la 'producción'"

Ideas

Log4net utiliza un atributo de montaje para configurarse .

using log4net.Config; 
[assembly: XmlConfigurator()] 

Tal vez puedo hacer algo simliar?

[assembly: CheckDatabaseNameNot("production")] 

Respuesta

6

¿Has probado [AssemblyInitialize]?

+0

Pensé que busqué tal atributo, pero lamentablemente sí que funciona. Puedo lanzar una excepción del método si falla la verificación de seguridad de la base de datos. – quip

+0

Al principio, pensé que estabas bromeando cuando leí tu respuesta, ¡porque estaba tan seguro de que la busqué antes de hacer mi pregunta! – quip

+1

Jaja, sí, todos hemos estado allí antes. –

Cuestiones relacionadas