在Selenium中,我经常发现自己正在进行测试...
<div>
在单元测试环境中,您需要对每个部分进行单独测试(例如,一个用于// Test #1
login();
// Test #2
login();
goToPageFoo();
// Test #3
login();
goToPageFoo();
doSomethingOnPageFoo();
// ...
,一个用于login
等),以便在测试失败时您知道究竟出了什么问题。但是,我不确定这是Selenium的一个好习惯。
它似乎导致了许多冗余测试,并且&#34;知道出了什么问题&#34;问题似乎并不那么糟糕,因为它通常会通过查看测试的步骤来清楚出现了什么问题。并且运行一堆&#34;积累&#34;肯定需要更长的时间。测试比仅运行最后一次(&#34;建立&#34;)测试。
我错过了什么,或者我应该只进行一次长时间测试并跳过所有较短的测试?
答案 0 :(得分:2)
我在Selenium中使用了许多较小的测试(如代码示例中)构建了一个大型测试套件。我这样做是出于同样的原因。在测试失败时知道“出了什么问题”。
这是标准单元测试的常见最佳实践,但如果我不得不重新进行,我将主要使用第二种方法。更大的组合测试,在需要时进行一些较小的测试。
原因是Selenium测试比标准单元测试要长一个数量级,特别是在较长的情况下。这使得整个测试套件无法忍受很长时间,大部分时间都花在一遍又一遍地运行相同的冗余代码上。
如果你确实收到了一个错误,比如在20多个不同的测试开始时重复这一步骤,那么知道你得到20次以上相同的错误并没有多大帮助。我的测试运行器不按顺序运行我的测试,所以我的第一个错误甚至不是“build-up”系列的第一次增量测试,所以我最终看到第一次测试失败并且它的错误信息是看到失败的来源从。如果我使用更大的“组合”测试,我会做同样的事情。