[IMP] web: add fail fast feature to qunit test suite

With this commit, we introduce a new 'fail fast' feature to our qunit
test suite: when it is activated, the qunit test suite will immediately
stop after the first failed test.

It is accessible as a flag in the url (failfast), or by clicking the
checkbox in the UI. It is currently not activated by default.

Note that this commit also change the url for the runbot phantomjs test
in order to activate this feature.  This allows us to increase the global
timeout for the js test suite without fear!
This commit is contained in:
Géry Debongnie
2018-04-12 16:58:40 +02:00
parent e6e42a1a8c
commit 611c836a46
2 changed files with 23 additions and 2 deletions
@@ -118,4 +118,25 @@ function _addSortButton() {
});
}
/**
* We add here a 'fail fast' feature: we often want to stop the test suite after
* the first failed test. This is also useful for the runbot test suites.
*/
QUnit.config.urlConfig.push({
id: "failfast",
label: "Fail Fast",
tooltip: "Stop the test suite immediately after the first failed test."
});
QUnit.begin(function() {
if (QUnit.config.failfast) {
QUnit.testDone(function(details) {
if (details.failed > 0) {
QUnit.config.queue.length = 0;
}
});
}
});
})();
+2 -2
View File
@@ -12,11 +12,11 @@ class WebSuite(odoo.tests.HttpCase):
def test_01_js(self):
# webclient desktop test suite
self.phantom_js('/web/tests?mod=web', "", "", login='admin', timeout=420)
self.phantom_js('/web/tests?mod=web&failfast', "", "", login='admin', timeout=1800)
def test_02_js(self):
# webclient mobile test suite
self.phantom_js('/web/tests/mobile?mod=web', "", "", login='admin', timeout=300)
self.phantom_js('/web/tests/mobile?mod=web&failfast', "", "", login='admin', timeout=1800)
def test_check_suite(self):
# verify no js test is using `QUnit.only` as it forbid any other test to be executed