前题:虽然我在前面的Specflow 稳定性
主题中提到了这个问题,但我想在一个新的主题中再次提出这个问题。这是因为上一个主题的标题具有误导性(我现在认为 Specflow 稳定性不是问题),我可以更准确地解决问题。
问题:
当我运行大约 50 个测试的完整测试集时,大多数时候随机有一两个测试失败(有时没有测试失败)。当我将完整的测试集分割成更小的测试集(例如,每个单独的用户故事包含 7 或 8 个测试的测试集),并且这些集单独运行时,所有测试都通过了。就像 Luke McGregor 在Specflow 稳定性中所说的那样,测试似乎正在共享数据,因此失败了。但是为什么只有在运行完整的集合时才会发生这种情况,而不是在我使用较小的集合时?
背景:
我正在尝试运行一组 50 个左右的 Specflow 测试。所有这些测试都旨在测试网站的 UI。测试在 Visual Studio 2010 中运行,使用 MsTest 作为运行器工具。使用的浏览器是 FireFox。目前,在测试中采取的步骤是:
- 在每个场景之前,都会启动一个新的 IIS 进程和一个新的 BrowserSession;
- 运行场景;
- 在每个场景之后,IIS 进程和 BrowserSession 都会终止;
我在每个单独的测试场景之前启动一个新的 IIS 进程和一个新的 BrowserSession 的原因是为了尽量减少卢克提到的“数据共享”的风险。不幸无济于事。
我现在有点迷失了问题可能是什么。我在这里遗漏了一些明显(或者可能不那么明显)的东西吗?
先感谢您!