【发布时间】:2020-04-10 08:55:51
【问题描述】:
我正在为我的项目的两层编写一些单元测试,在第一层我有一个包含领域特定逻辑的类库,第二层是应用程序。
所以我的测试结构是这样的:
- Project.App.Tests(单元测试项目)
- TestClass1
- ...
- TestClassN
- Project.Domain.Tests(单元测试项目)
- TestClass1
- ...
- TestClassN
我正在使用 NUnit 3 及其适配器在 Visual Studio 2015 中运行测试。
我需要为两个项目初始化一个 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属性,根据GitHub 任何命名空间之外的SetUpFixture为整个程序集提供SetUp 和TearDown。 它应该可以工作,如果Project.Domain.Tests和Project.App.Tests位于一个程序集中 -
好像和命名空间有关,rest 看起来不错
-
我对 assembly 部分没有太多关注,我误解并认为它是对命名空间的引用。我认为我遇到的问题与此有关,我会尝试将它们放在同一个程序集中进行解决。
标签: c# visual-studio unit-testing nunit nunit-3.0