Я пишу некоторые модульные тесты для уровня персистентности моего приложения на C # .NET.До и после выполнения тестов тестового класса я хочу выполнить некоторую очистку, чтобы удалить возможно вставленные фиктивные значения , поэтому эта очистка происходит в методах, помеченных атрибутами [ClassInitialize()]
и [ClassCleanup()]
.
(я знаю, что лучшим способом было бы использовать базу данных в памяти, но это не совсем выполнимо, поскольку мы зависим от множества хранимых процедур ....)
Я хотел бы вывести некоторую информацию о результатах очистки , но не могу найти способ получить выходные данные в результатах теста с VISUAL Studio 2010.
Это то, что я делаю до сих пор:
///... lots of stuff before ...
//global for the test run
private static TestContext context;
//for each test
private IRepository repo;
#region Initialisation and cleanup
/// <summary>
/// Execute once before the test-suite
/// </summary>
[ClassInitialize()]
public static void InitTestSuite(TestContext testContext)
{
context = testContext;
removeTestDataFromDb();
}
[ClassCleanup()]
public static void CleanupTestSuite()
{
removeTestDataFromDb();
}
private static void removeTestDataFromDb()
{
context.WriteLine("removeTestDataFromDb starting");
using (ISession session = NHibernateHelper.OpenSession())
{
IDbConnection cn = session.Connection;
IDbCommand cmd = cn.CreateCommand();
//remove anyt test data
cmd.CommandText = @"DELETE FROM SomeTable
WHERE somefield LIKE 'easyToFindTestData%Test'";
int res = cmd.ExecuteNonQuery();
context.WriteLine("removeTestDataFromDb done - affected {0} rows", res);
}
}
[TestInitialize()]
public void InitTest()
{
repo = new MyRepositoryImplementation();
}
[TestCleanup()]
public void CleanupTest()
{
//cleanup
repo = null;
}
#endregion
Я пытаюсь использовать context.WriteLine () ...
Я такжепопробовал просто использовать Console.WriteLine () с теми же результатами.
Как записать в стандартный вывод в части ClassInitialize
и где вы можете получить доступ к этому выводу?