【发布时间】:2013-03-19 21:53:42
【问题描述】:
前题:
虽然我之前在主题Specflow stability 中提到了这个问题,但我想在一个新主题中再次提出这个问题。这是因为上一个主题的标题具有误导性(我现在认为 Specflow 稳定性不是问题),我可以更准确地解决问题。
问题:
当我运行大约 50 个测试的完整测试集时,大多数时候随机有一两个测试失败(有时没有测试失败)。当我将完整的测试集分割成更小的测试集(例如,每个单独的用户故事包含 7 或 8 个测试的测试集),并且这些集单独运行时,所有测试都通过了。就像 Luke McGregor 在 Specflow stability 中所说的那样,测试似乎正在共享数据,因此失败了。但是为什么只有在运行完整的集合时才会发生这种情况,而不是在我使用较小的集合时?
背景:
我正在尝试运行一组 50 个左右的 Specflow 测试。所有这些测试都旨在测试网站的 UI。测试在 Visual Studio 2010 中运行,使用 MsTest 作为运行器工具。使用的浏览器是 FireFox。目前,在测试中采取的步骤是:
- 在每个场景之前,都会启动一个新的 IIS 进程和一个新的 BrowserSession;
- 场景已运行;
- 在每个场景之后,IIS 进程和 BrowserSession 都会终止;
我在每个单独的测试场景之前启动一个新的 IIS 进程和一个新的 BrowserSession 的原因是为了尽量减少 Luke 提到的“数据共享”的风险。不幸无济于事。
我现在有点迷失了问题可能是什么。我在这里遗漏了一些明显(或者可能不那么明显)的东西吗?
提前谢谢你!
【问题讨论】:
-
静态类是一种可能。但是没有代码,这个问题是无法回答的。请仔细查看失败的测试。你能看到一个模式吗?也许有些测试永远不会失败,而其他测试偶尔会失败?仔细看看那些失败的。
-
您能再解释一下“静态类是一种可能性”吗?我仔细研究了失败的测试,但看不到模式。这里最奇怪的是,它们似乎只在测试集变大时才会失败。
标签: c# visual-studio-2010 testing bdd specflow