私はすべてのテストの周りに簡単なトランザクションを設定する私の単体テストの基本クラスを持っています。クラスのすべてのテストが完了した後、これはロールバックしなければならない - 私は、これらのテストのいずれかが実行される前に、一度やってみたい仕事の束を持って、私の継承クラスのいずれかでTestInitializeのTransactionAbortedException
public class TestBase
{
TransactionScope _trans;
[TestInitialize()]
public void Init()
{
_trans = new TransactionScope();
}
[TestCleanup()]
public void Cleanup()
{
_trans.Dispose();
}
}
。
[TestClass]
public class MyTests : TestBase
{
static TransactionScope _transClass;
[ClassInitialize()]
public static void ClassInit(TestContext context)
{
_transClass = new TransactionScope();
//do some setup
}
[ClassCleanup()]
public static void ClassCleanup()
{
_transClass.Dispose();
}
[TestMethod()]
public void TestMethod()
{
//do some testing
}
}
私の実際のクラスには、もちろん複数のテスト方法があります。最初のテストメソッドは成功しますが、TestInitializeで新しいTransactioScopeを設定しようとすると、2番目のメソッドはTransactionAbortedExceptionをスローします。誰かが私がここで間違って設定したことを説明してもらえますか?