我在Specflow 2.0,nUnit 3.X,TeamCity和Visual Studio 2013中编写了自动化测试。我试图并行运行测试但是它们失败了,因为代码使用静态类/对象。
在Specflow网站上,建议使用 PARALLEL EXECUTION WITH MEMORY(APPDOMAIN)隔离来运行线程安全测试(如果架构依赖于静态) http://www.specflow.org/documentation/Parallel-Execution/
但是没有关于如何做到这一点甚至谷歌搜索的信息我找不到任何相关的文章。
如果有人能帮助我了解我们如何做到这一点,我真的很感激。
感谢您的帮助, Satty
答案 0 :(得分:0)
如何配置隔离取决于您使用的测试运行器 我并不是100%确定NUnit确实支持appdomain隔离,但是找到一个好的开始是Parallelizable属性文档:https://github.com/nunit/docs/wiki/Parallelizable-Attribute
如果您使用SpecFlow + Runner(http://www.specflow.org/plus/),则可以进行AppDomain或进程分离。
以下是SpecFlow + Runner中不同模式的博文:https://the-engineers.net/2016/04/08/using-specflowrunners-parallelization-features/
完全披露:我是SpecFlow + Runner
的开发者之一答案 1 :(得分:0)
这就是为什么您不应该在代码中使用静态类的原因 带有静态代码(例如全局代码)的代码被认为有害且难以测试