diff --git a/log.html b/log.html index 3ac7be1..cd2e7a3 100755 --- a/log.html +++ b/log.html @@ -1,11 +1,11 @@ - + - + - @@ -1655,7 +1612,7 @@ window.settings = {"background":{"fail":"#f66","pass":"#9e9","skip":"#fed84f"},"

Opening Robot Framework report failed

@@ -1685,12 +1642,12 @@ $(document).ready(function () { function setBackground(topsuite) { var color; - if (topsuite.fail) + if (topsuite.criticalFailed) color = window.settings.background.fail; - else if (topsuite.pass) - color = window.settings.background.pass; + else if (topsuite.totalFailed) + color = window.settings.background.nonCriticalFail; else - color = window.settings.background.skip; + color = window.settings.background.pass; $('body').css('background-color', color); } @@ -1704,18 +1661,18 @@ function addDetails() { if (window.location.hash) showDetailsByHash(); else - renderSearchSelector(); + renderTotalSelector(); } function addCustomSortersForDetails() { $.tablesorter.addParser({ - id: 'status', + id: 'criticality', type: 'numeric', is: function(s) { return false; // do not auto-detect }, format: function(s) { - return {'FAIL': -1, 'SKIP': 0, 'PASS': 1}[s]; + return s === 'yes' ? 0 : 1; } }); $.tablesorter.addParser({ @@ -1753,22 +1710,26 @@ function showDetailsByHash() { action(query); } -function totalDetailSelected() { - renderTotalSelector(); +function totalDetailSelected(name) { + renderTotalSelector(name); + if (name) { + renderTotalDetails(name); + var title = name == 'critical' ? 'Critical {Test}s' : 'All {Test}s' + updatePrintSelector(testOrTask(title)); + } scrollToSelector('totals', name); } -function renderTotalSelector() { - var args = {linkTarget: 'totals', +function renderTotalSelector(name) { + var args = {linkTarget: (name) ? 'totals?'+name : 'totals', totalTabStatus: 'detail-tab-selected'}; - renderSelector(args, 'totalDetailsSelectorTemplate'); - updatePrintSelector(testOrTask('All {Test}s')); - renderTotalDetails(); + renderSelector(args, 'totalDetailsSelectorTemplate', {selected: name}); } -function renderTotalDetails() { - var stat = window.testdata.statistics().total[0]; - var tests = window.testdata.suite().allTests().sort(sortByStatus) +function renderTotalDetails(name) { + var index = (name == 'critical') ? 0 : 1; + var stat = window.testdata.statistics().total[index]; + var tests = getTotalTests(name); stat.totalTime = calculateTotalTime(tests); $.tmpl('tagOrTotalDetailsTemplate', stat).appendTo('#details-header'); drawTestDetailsTable(tests, true); @@ -1866,8 +1827,11 @@ function renderSearchSelector(suite, test, include, exclude) { function renderSearchDetails(suite, test, include, exclude) { var tests = searchTests(util.escape(suite), util.escape(test), util.escape(include), util.escape(exclude)); - var stats = calculateStats(tests); - stats.totalTime = calculateTotalTime(tests); + var passed = calculatePassed(tests); + var stats = {total: tests.length, + pass: passed, + fail: tests.length - passed, + totalTime: calculateTotalTime(tests)}; $.tmpl('tagOrTotalDetailsTemplate', stats).appendTo('#details-header'); drawTestDetailsTable(tests, true); } @@ -1918,16 +1882,23 @@ function renderTestDetailsHeader() { } function sortByStatus(t1, t2) { - if (t1.status == t2.status) - return t1.fullName < t2.fullName ? -1 : 1; - statuses = {'FAIL': -1, 'SKIP': 0, 'PASS': 1}; - return statuses[t1.status] < statuses[t2.status] ? -1 : 1; + if (t1.status != t2.status) + return t1.status == 'FAIL' ? -1 : 1; + if (t1.isCritical != t2.isCritical) + return t1.isCritical ? -1 : 1; + return t1.fullName < t2.fullName ? -1 : 1; } function getTestsHavingTag(tag) { return window.testdata.suite().searchTestsByTag(tag).sort(sortByStatus); } +function getTotalTests(name) { + if (name == 'critical') + return window.testdata.suite().criticalTests().sort(sortByStatus); + return window.testdata.suite().allTests().sort(sortByStatus); +} + function calculateTotalTime(tests) { var total = 0; for (var i = 0, len = tests.length; i < len; i++) @@ -1935,19 +1906,11 @@ function calculateTotalTime(tests) { return util.formatElapsed(total); } -function calculateStats(tests) { +function calculatePassed(tests) { var passed = util.filter(tests, function (test) { return test.status == 'PASS'; }); - var failed = util.filter(tests, function (test) { - return test.status == 'FAIL'; - }); - return { - total: tests.length, - pass: passed.length, - fail: failed.length, - skip: tests.length - passed.length - failed.length - }; + return passed.length; } function renderTestDetails(sortByStatus, target) { @@ -1970,12 +1933,12 @@ function renderTestDetailsRows(tests, target) { } function configureTableSorter(sortByStatus) { - var config = {headers: {3: {sorter: 'status'}, - 5: {sortInitialOrder: 'desc'}, - 6: {sorter: 'times'}}, + var config = {headers: {3: {sorter: 'criticality'}, + 6: {sortInitialOrder: 'desc'}, + 7: {sorter: 'times'}}, selectorSort: '.details-col-header'}; if (sortByStatus) - config['sortList'] = [[3, 0]]; + config['sortList'] = [[4, 0], [3, 0]]; $('#test-details').tablesorter(config); } @@ -2012,19 +1975,15 @@ function hideHiddenDetailsColumns(elem) { - {{if fail}} - - {{else pass && skip}} - - {{else pass}} - + {{if criticalFailed}} + + {{else totalFailed}} + {{else}} - + {{/if}} {{if doc()}} @@ -2065,10 +2024,10 @@ function hideHiddenDetailsColumns(elem) {
Status:${fail} {{= testOrTask('{test}')}}{{if fail != 1}}s{{/if}} failed${pass} {{= testOrTask('{test}')}}{{if pass != 1}}s{{/if}} passed, - ${skip} {{= testOrTask('{test}')}}{{if skip != 1}}s{{/if}} skippedAll {{= testOrTask('{test}')}}s passed${criticalFailed} critical {{= testOrTask('{test}')}}{{if criticalFailed != 1}}s{{/if}} failedAll critical {{= testOrTask('{test}')}}s passedAll {{= testOrTask('{test}')}}s passed