2 Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
19 @import "app/css/modal.css";
21 .graph, .empty-graph {
22 border: 1px solid #ccc;
33 .pass-bar, .fail-bar {
39 border: 1px solid black;
44 <div ng-show="showTestSuitesResults">
45 <h2 class="heading-small"></h2>
46 <h1 class="heading-page">Display Test Suites Results</h1>
48 <h2 class="heading-small"></h2>
50 <h2 class="heading-small">Select a blueprint layer:</h2>
52 <select ng-model="selectedLayer"
53 ng-init="resultsLayers[0]"
54 ng-change="selectedResultsLayerChange(selectedLayer)"
55 ng-options="n for n in resultsLayers">
59 <h2 class="heading-small">Select a test suite of the
60 selected layer in order to be displayed:</h2>
62 <select ng-model="selectedTestSuiteName"
63 ng-init="resultsLayerTestSuitesNames[0]"
64 ng-change="selectedTestSuitesNameChange(selectedTestSuiteName)"
65 ng-options="n for n in resultsLayerTestSuitesNames">
72 <div ng-hide="!selectedLayer || !selectedTestSuiteName">
74 <h2 class="heading-small"></h2>
76 <h3 class="heading-small">
82 <p>Name: {{selectedRobotTestResult.name}}</p>
84 {{selectedRobotTestResult.robot.generated}}</p>
86 {{selectedRobotTestResult.robot.generator}}</p>
88 {{selectedRobotTestResult.robot.errors}}</p>
90 <h2 class="heading-small"></h2>
91 <h3 class="heading-small">
92 <u>Test Statistics</u>
95 <table class="striped" cellspacing="0"
102 <p> Total statistics </p>
114 <p>Pass / Fail </p>
120 ng-repeat="stat in selectedRobotTestResult.robot.statistics.total.stat">
122 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
125 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
126 (stat.fail * 1) + (stat.pass*1) }}</td>
128 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
131 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
134 style="padding-left: 10px; font-size: 15px; width: 13%;">
136 <div class="pass-bar"
137 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
139 <div class="fail-bar"
140 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
150 <h3 class="heading-small"></h3>
151 <table class="striped" cellspacing="0"
158 <p> Statistics by Tag </p>
170 <p>Pass / Fail </p>
176 ng-repeat="stat in selectedRobotTestResult.robot.statistics.tag.stat">
178 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
181 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
182 (stat.fail * 1) + (stat.pass*1) }}</td>
184 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
187 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
190 style="padding-left: 10px; font-size: 15px; width: 13%;">
192 <div class="pass-bar"
193 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
195 <div class="fail-bar"
196 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
206 <h3 class="heading-small"></h3>
207 <table class="striped" cellspacing="0"
214 <p> Statistics by Suite </p>
226 <p>Pass / Fail </p>
232 ng-repeat="stat in selectedRobotTestResult.robot.statistics.suite.stat">
234 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
237 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
238 (stat.fail * 1) + (stat.pass*1) }}</td>
240 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
243 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
246 style="padding-left: 10px; font-size: 15px; width: 13%;">
248 <div class="pass-bar"
249 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
251 <div class="fail-bar"
252 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
261 <h2 class="heading-small"></h2>
263 <h3 class="heading-small">
264 <a href="javascript:void(0);"
265 ng-click="showDetailsLog = ! showDetailsLog">Test
268 <div ng-show="showDetailsLog">
270 <p>Root Suite Full Name:
271 {{selectedRobotTestResult.robot.suite.name}}</p>
273 {{selectedRobotTestResult.robot.suite.source}}</p>
275 {{selectedRobotTestResult.robot.suite.status.status}}</p>
277 {{selectedRobotTestResult.robot.suite.status.starttime}}</p>
279 {{selectedRobotTestResult.robot.suite.status.endtime}}</p>
281 <h2 class="heading-small"></h2>
283 <p>Sub-suite Full Name:
284 {{selectedRobotTestResult.robot.suite.suite.name}}</p>
286 {{selectedRobotTestResult.robot.suite.suite.doc}}</p>
288 {{selectedRobotTestResult.robot.suite.suite.source}}</p>
290 {{selectedRobotTestResult.robot.suite.suite.status.status}}</p>
292 {{selectedRobotTestResult.robot.suite.suite.status.starttime}}</p>
294 {{selectedRobotTestResult.robot.suite.suite.status.endtime}}</p>
298 <h2 class="heading-small"></h2>
301 <h4 class="heading-small">Sub-suite Robot
304 ng-repeat="kw in selectedRobotTestResult.robot.suite.suite.kw"
305 ng-include="'kwVal'"></li>
309 <h2 class="heading-small"></h2>
311 <h3 class="heading-small">Test Cases</h3>
312 <table class="striped" cellspacing="0"
319 <p> Full Name </p>
322 <p>Documentation </p>
328 <p>Start Time </p>
331 <p>End Time </p>
334 <p>Critical </p>
343 ng-repeat="test in selectedRobotTestResult.robot.suite.suite.test"
344 ng-class="{selected:test.id == selectedTestId}"
345 ng-click="setClickedTest(test)">
347 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
350 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.doc}}</td>
352 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.status}}</td>
354 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.starttime}}</td>
356 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.endtime}}</td>
358 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.critical}}</td>
360 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.content}}</td>
366 <h2 class="heading-small"></h2>
369 <h4 class="heading-small">Robot keywords of
370 the selected test case</h4>
371 <li ng-repeat="kw in selectedTest.kw"
372 ng-include="'kwVal3'"></li>
379 <script type="text/ng-template" id="kwVal">
380 <h2 class="heading-small"></h2>
382 <a href="javascript:void(0);" ng-click="showDetails = ! showDetails">
383 {{kw.name}} (Nested depth: {{$depth = $parent.$depth && $parent.$depth + 1 || 1}})</a>
385 <div ng-show="showDetails" ng-style="{'margin-left': 50*$depth+'px'}">
389 {{kw.library}}</i></p>
390 <p>Documentation: <i> {{kw.doc}}</i></p>
392 <i>{{kw.status.starttime}}</i></p>
394 <i>{{kw.status.endtime}}</i></p>
396 <i>{{kw.status.status}}</i></p>
397 <p ng-if="kw.arguments">Arguments:
399 <li ng-repeat="arg in kw.arguments.arg">    <i>{{arg}}</i></li>
402 <p ng-if="kw.msg">Message:
403 <i>{{kw.msg.content}}</i></p>
405 <p ng-if="kw.kw">Used Robot keywords:</p>
407 <li ng-repeat="kw in kw.kw" ng-include="'kwVal'"></li>
411 <script type="text/ng-template" id="kwVal3">
412 <h2 class="heading-small"></h2>
414 <a href="javascript:void(0);" ng-click="showDetails4 = ! showDetails4">
415 {{kw.name}} (Nested depth: {{$depth = $parent.$depth && $parent.$depth + 1 || 1}})</a>
417 <div ng-show="showDetails4" ng-style="{'margin-left': 50*$depth+'px'}">
421 {{kw.library}}</i></p>
422 <p>Documentation: <i> {{kw.doc}}</i></p>
424 <i>{{kw.status.starttime}}</i></p>
426 <i>{{kw.status.endtime}}</i></p>
428 <i>{{kw.status.status}}</i></p>
429 <p ng-if="kw.arguments">Arguments:
431 <li ng-repeat="arg in kw.arguments.arg">    <i>{{arg}}</i></li>
434 <p ng-if="kw.msg">Message:
435 <i>{{kw.msg.content}}</i></p>
437 <p ng-if="kw.kw">Used Robot keywords:</p>
439 <li ng-repeat="kw in kw.kw" ng-include="'kwVal3'"></li>