Sử dụng MSTEST trong VS2012.3 .NET4.5 và R # cho nhân tố thử nghiệm.Nhiều thuộc tính TestInitialize trong MSTEST
Mã bên dưới hoạt động theo thứ tự 1,2,3,4.
Tuy nhiên tôi đang lo ngại rằng nó có thể không luôn luôn thực hiện theo thứ tự này như nhiều TestInitialize
thuộc tính không được hỗ trợ Câu hỏi MSDN
: Sản phẩm này cho phép, và các tài liệu chỉ có nghĩa là nhiều TestInitialize
thuộc tính không được phép vào Cùng lớp?
Tôi muốn giữ cấu trúc này khi có nhiều thử nghiệm tích hợp kế thừa từ TransactedTestBase, nhưng yêu cầu các tập lệnh SQL khác nhau để thiết lập.
hành vi tương tự đã được tìm thấy here
[TestClass]
public class DelegationTest : TransactedTestBase
{
[TestInitialize]
public void Setup()
{
Console.WriteLine("2 Setup");
//var script = "INSERT INTO blah...";
//var sqlConnect = new SqlConnection(dbConnection.ConnectionString);
//sqlConnect.Open();
//var server = new Server(sqlConnect);
//var database = server.Databases[sqlConnect.Database];
//database.ExecuteNonQuery(script);
}
[TestMethod]
public void TestMethod1()
{
Console.WriteLine("3 Test Method");
}
}
[TestClass]
public class TransactedTestBase
{
//protected userEntities userEntities;
//private TransactionScope scope;
//public static SqlDatabase dbConnection;
//private const bool ShouldWriteToDB = true;
//private const bool ShouldWriteToDB = false;
[TestInitialize()]
public virtual void TestStart()
{
Console.WriteLine("1 TestStart");
//if (ShouldWriteToDB)
//{
// dbConnection = EnterpriseLibraryContainer.Current.GetInstance<SqlDatabase>("DBConnect");
// return;
//}
//scope = new TransactionScope(TransactionScopeOption.RequiresNew);
//user = new userEntities();
//dbConnection = EnterpriseLibraryContainer.Current.GetInstance<SqlDatabase>("DBConnect");
}
[TestCleanup()]
public virtual void TestEnd()
{
Console.WriteLine("4 TestEnd");
//if (ShouldWriteToDB) return;
//scope.Dispose();
}
}
Bạn có thể tránh một sự ngạc nhiên và gọi các phương thức lớp cơ sở trực tiếp: [TestInitialize] void override public TestStart() { base.TestStart(); Console.WriteLine ("2 Thiết lập"); } – SlavaGu