【发布时间】:2014-08-22 22:21:08
【问题描述】:
我正在尝试使用一个基本的 SetupFixtureClass 来在解决方案中的每个项目中调用。
我得到了我的抽象类 TestFixtureSetupBase,它没有命名空间,位于项目 a 中。
[SetUpFixture]
public abstract class TestFixtureSetupClass
{
[FixtureSetup]
public void init(){myRandomMethod()};
public virtual void myRandomMethod(){};
}
我从项目 b 中得到了另一个类,它继承自这个类,例如:
[TestFixture]
public class OtherClassOfOtherProject : TestFixtureSetupClass
{
public override void myRandomMethod(){...};
[Test]
public void randomTest(){...}
}
但是,在这个项目中,Setup 和 myRandomMethod 都没有被调用。
我必须注意什么才能获得我想要的结果?看来我满足nunit-documentation.中提到的要求
编辑/更新:我尝试做的是:在 TestFixtureSetUp 中构建我的环境一次。它失败了,我想得到一个很好的例外。因此,我在这里遵循了 sandshadow 显示的示例:https://stackoverflow.com/a/23121991/1484047。所以我会存储异常并将其抛出到每个执行的测试的设置中,否则根本不会显示任何异常(只会出现诸如“SetUpFixture failed”之类的东西而没有任何解释)。
【问题讨论】:
-
您是否从命令行运行测试?有什么论据?
-
我正在使用 ReSharper 运行它们 - 没有命令,只有基本的调试功能
-
嗯,这不仅是一个 resharper 问题,因为我们的构建服务器没有使用 resharper,我们也遇到了同样的问题
-
您的构建服务器使用什么?最好在问题中提供这些细节。 NUnit 本身支持这一点,其他运行器可能有错误。需要理解的是,有许多 runner 实现,每个都有自己的怪癖。
-
根据您的编辑,听起来您正在尝试做的事情已在链接的答案中得到回答。那个答案不清楚呢?