我的Visual Studio解决方案中有3个项目:1个共享库项目,1个单元测试项目(主要是Selenium WebDriver测试)和1个编码的UI测试项目(我很难将单元测试和编码的UI测试结合到一起1项目 - 所以我们有2)。我有一个名为Globals.Status的共享库项目中带有静态属性的静态类。
我有一个测试用例,它需要在broswer(Selenium单元测试)和桌面应用程序(编码的UI测试)中完成工作。 Selenium单元测试更改此静态Status变量。编码的UI测试(在编码的UI项目中)需要读取此更新的Status变量。当我连续运行这两个测试时,在调用编码的UI测试时该变量为NULL。
我有编码的UI测试项目引用共享库项目和单元测试项目,但显然这还不够。我需要做些什么来完成这项工作?
感谢您的任何见解!
答案 0 :(得分:1)
我猜你的UI测试是在新AppDomain
上运行的。每个AppDomain
都会创建所有静态变量的实例。
您可以做的是将单元测试代码移动到新类中并在UI-test
中执行p.s。
测试不应取决于全球状态。 此外,单项测试不应依赖于其他测试。
如果希望测试并行执行
,这将特别棘手这里有一个很好的说法,为什么全球国家是坏的,你可以做些什么: https://www.youtube.com/watch?v=-FRm3VPhseI
答案 1 :(得分:1)
您需要使用在应用程序之外保留的数据(更具体地说,在执行程序集的内存空间之外)来支持您的属性。
有一些合理的方法可以做到这一点。想到AppFabric Cache,Redis或Memcached。