我在测试我的 Nhibernate 存储库时遇到了一个奇怪的问题。
我有 10 个单元测试,如下所示。每次批量运行它们时,第一次失败,其余成功。如果一个一个地运行它们,它们都会失败。如果在我的测试运行之前重新启动 MSDTC,它有时会表现得像以前一样,有时所有测试都会成功。我找不到它为什么会这样的模式。
我希望事务回滚,以便从每个测试的干净数据库开始,因此事务处理。
由于此错误,测试/测试失败:
System.Data.SqlClient.SqlException:服务器“MYCOMPUTERNAME\SQLEXPRESS”上的 MSDTC 不可用。
我的测试如下所示:
[TestInitialize]
public void MyTestInitialize()
{
_transactionScope = new TransactionScope();
}
[TestCleanup]
public void MyTestCleanup()
{
if (_transactionScope != null)
{
_transactionScope.Dispose();
_transactionScope = null;
}
}
[TestMethod]
[TestCategory("RepositoryTests")]
public void RepositoryCanSaveAProduct()
{
var platform = ProductObjectMother.CreatePlatform("100010", "Supplier 10");
var mainsegment = ProductObjectMother.CreateMainSegment("123");
var application = ProductObjectMother.CreateApplication("Foo");
var productfamily = ProductObjectMother.CreateProductFamily("X99");
Engine i = ProductObjectMother.CreateEngine(platform, productfamily, application, mainsegment);
var repository = new ProductRepository();
repository.Save(i);
repository.Flush();
}