是否可以访问项目外的 SetUpFixture?

Is it possible to access to a SetUpFixture outside the projet?

我正在为我的项目的两层编写一些单元测试,在第一层我有一个 class 包含领域特定逻辑的库,第二层是应用程序。

所以我的测试结构是这样的:

我在 visual studio 2015 年的 运行 测试中使用 NUnit 3 及其适配器。

我需要为两个项目初始化 LocalDb(出于一些不值一提的原因)。所以我添加了一个如下所示的 SetUpFixture:

namespace Project
{
    [SetUpFixture]
    public class SetUpFixture
    {
        [OneTimeSetUp]
        public void Initialize() { ... }
    }
}

因为我本来是领域项目需要的,这个文件在Project.Domain.Tests项目中,所以在Project.Domain.Tests项目下测试很容易到达 OneTimeSetUp 方法,但问题是 Project.App.Tests,它们从未到达 SetUpFixture OneTimeSetUp 方法。

我是否缺少任何配置?还是我的实现方式不支持它?

提前致谢。

SetUpFixture 的使用说明假定所有内容都在一个程序集中。程序集是 运行 一次一个,只有在您进行引用后才能相互引用。

当然,一个程序集可以引用另一个程序集,但是 NUnit 只会搜索您告诉它的程序集 运行 是否存在 SetUpFixtureAttribute.

等属性

如果代码很简单,最简单的解决方法是在每个程序集中复制它。如果它很复杂,那么我建议将您的初始化代码放在两个测试程序集都引用的公共程序集中。那么两个SetUpFixture可以缩减为一个调用。

另一个问题是并行性。如果您的两个安装夹具会相互干扰,请确保您没有告诉 VS 运行 这两个进程并行。