MSTest имеет атрибут [ClassCleanup ()], который, насколько я могу судить, должен быть статическим.Я люблю пробежаться по окончании модульных тестов и очистить базу данных.Все это прекрасно работает, однако, когда я захожу на наш сервер сборки и использую наш скрипт сборки Nant, кажется, что модульные тесты запускаются с NUnit.NUnit, похоже, не любит метод очистки статичным.Поэтому он игнорирует мои тесты в этом классе.Что я могу сделать, чтобы исправить это?Я предпочитаю не использовать [TestCleanUp ()], так как он запускается после каждого теста.У кого-нибудь есть предложения?Я знаю, что [TestCleanup ()] помогает в разделении, но я действительно предпочитаю [ClassCleanup ()] в этой ситуации.Вот пример кода.
////Use ClassCleanup to run code after all tests have run
[ClassCleanup()]
public static void MyFacadeTestCleanup()
{
UpdateCleanup();
}
private static void UpdateCleanup()
{
DbCommand dbCommand;
Database db;
try
{
db = DatabaseFactory.CreateDatabase(TestConstants.DB_NAME);
int rowsAffected;
dbCommand = db.GetSqlStringCommand("DELETE FROM tblA WHERE biID=@biID");
db.AddInParameter(dbCommand, "biID", DbType.Int64, biToDelete);
rowsAffected = db.ExecuteNonQuery(dbCommand);
Debug.WriteLineIf(rowsAffected == TestConstants.ONE_ROW, string.Format("biId '{0}' was successfully deleted.", biToDelete));
} catch (SqlException ex) {
} finally {
dbCommand = null;
db = null;
biDelete = 0;
}
}
Спасибо за любые указатели, и да, я понимаю, что я ничего не ловлю.Мне нужно сначала преодолеть это препятствие.
Приветствия, ~ ck в Сан-Диего