NUnit - 在不同模块的测试之间共享数据

时间:2017-04-21 13:12:27

标签: c# singleton nunit

我有一个包含许多项目的VS解决方案。每个项目都有一个与之相关的单元测试项目。例如,项目A和B分别具有单元测试项目A.Test和B.Test。

两个单元测试项目中的测试都依赖于(相同的)必须从文件加载的数据,并且每次都需要读取相当多的数据。如果我没有为每个单元测试重新读取文件中的数据,那么运行所有单元测试(+1500)的总时间将大大减少。

我有一个想法是将TestDataManager创建为Singleton,让它在第一次请求时读取数据并将数据缓存在内存中。下次请求相同的数据时,管理器只返回已缓存的数据。这对于同一项目中的单元测试(例如A.Test)可以正常工作,但是当从B.Test中的测试调用TestDataManager时,管理器已被拆除并重新创建。

在单位测试项目之间进行更改时,是否有人知道如何解决问题以将数据保留在内存中?

感谢名单!

1 个答案:

答案 0 :(得分:1)

它要求您在同一运行和同一AppDomain中运行两个程序集。一些跑步者(例如nunit3-console)允许您设置选项来执行此操作。其他人,比如NUnit 3 VS适配器,不会。