我有两个有共同父母的测试装置。虽然这些测试涉及SQLite / NHib类型的东西,这些东西通常都是初学者,但是我对NUnit有些了解,我希望能帮助修复这些测试。
好消息是,如果我运行(通过TestDriven.Net)子类化的TestFixtures而不选择公共父级,则所有测试都会成功。但是如果我在运行中包含了共同的父级,我就会失败(可能是因为我的NHib会话已被处理或丢失了它的绑定)。
任何人都可以解释为什么这两个测试可以自己成功但不能成功 父母,如果有某种程度来强制执行成功 行为?
干杯,
Berryl
public class ActivityTestFixture : GreenQueryOnlySQLiteTestFixture
{
protected IProjectDao _projectDao;
protected IDao<Account> _accountDao;
protected override void OnFixtureSetUp()
{
base.OnFixtureSetUp();
_projectDao = DataFactory.GetProjectDao(_sessionFactoryContext.SessionFactory);
_accountDao = DataFactory.GetAccountDao(_sessionFactoryContext.SessionFactory);
}
}
[TestFixture]
public class AccountDaoTests : ActivityTestFixture
{
[Test]
public void FindAll_IsEquivalentToSeeds() {
IList<Account> found;
using (var tx = _session.BeginTransaction()) {
found = _accountDao.FindAll();
tx.Commit();
}
found.AssertUnsavedValueSequenceEqual(ActivitySubjectSeeds.AllAccounts.ToAr ray());
}
}
[TestFixture]
public class ProjectDaoTests : ActivityTestFixture
{
[Test]
public void FindAll_IsEquivalentToSeeds()
{
IList<Project> found;
using (var tx = _session.BeginTransaction())
{
found = _projectDao.FindAll();
tx.Commit();
}
found.AssertUnsavedValueSequenceEqual(ActivitySubjectSeeds.Projects.ToArray ());
}
}
答案 0 :(得分:0)
不确定您获得的错误是什么,但可能是因为您在GreenQueryOnlySQLiteTestFixture
类中有某种静态字段。 NUnit的工作方式是夹具在其内部的测试生命周期中存在。所以它只为所有测试创建一次。这与xUnit不同,后者在一次测试的生命周期中存在。
没有看到整个实现,很难看出出了什么问题。但是,您可以从父夹具中删除TestFixtureAttribute
,因为它似乎没有任何测试。