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.
16 <div id="page-content" class="content" style="padding: 25px;">
19 .graph, .empty-graph {
20 border: 1px solid #ccc;
31 .pass-bar, .fail-bar {
37 border: 1px solid black;
40 .bluvalDetails .property {
42 display: inline-block;
43 box-sizing: border-box;
47 .bluvalDetails .value {
51 display: inline-block;
52 box-sizing: border-box;
56 background-color: #337ab7;
65 <div ng-show="showTestSuitesResults">
66 <h2 class="heading-small"></h2>
67 <h1 class="heading-page">Display Test Suites Results</h1>
69 <h2 class="heading-small"></h2>
71 <h2 class="heading-small">Select a blueprint layer:</h2>
73 <select ng-model="selectedLayer"
74 ng-init="resultsLayers[0]"
75 ng-change="selectedResultsLayerChange(selectedLayer)"
76 ng-options="n for n in resultsLayers">
80 <h2 class="heading-small">Select a test suite of the
81 selected layer in order to be displayed:</h2>
83 <select ng-model="selectedTestSuiteName"
84 ng-init="resultsLayerTestSuitesNames[0]"
85 ng-change="selectedTestSuitesNameChange(selectedTestSuiteName)"
86 ng-options="n for n in resultsLayerTestSuitesNames">
94 ng-hide="selectedLayer == null || selectedTestSuiteName == null">
96 <h2 class="heading-small"></h2>
98 <h3 class="heading-small">
104 <p>Name: {{selectedRobotTestResult.name}}</p>
106 {{selectedRobotTestResult.robot.generated}}</p>
108 {{selectedRobotTestResult.robot.generator}}</p>
110 {{selectedRobotTestResult.robot.errors}}</p>
112 <h2 class="heading-small"></h2>
113 <h3 class="heading-small">
114 <u>Test Statistics</u>
117 <table class="striped" cellspacing="0"
124 <p> Total statistics </p>
136 <p>Pass / Fail </p>
142 ng-repeat="stat in selectedRobotTestResult.robot.statistics.total.stat">
144 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
147 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
148 (stat.fail * 1) + (stat.pass*1) }}</td>
150 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
153 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
156 style="padding-left: 10px; font-size: 15px; width: 13%;">
158 <div class="pass-bar"
159 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
161 <div class="fail-bar"
162 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
172 <h3 class="heading-small"></h3>
173 <table class="striped" cellspacing="0"
180 <p> Statistics by Tag </p>
192 <p>Pass / Fail </p>
198 ng-repeat="stat in selectedRobotTestResult.robot.statistics.tag.stat">
200 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
203 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
204 (stat.fail * 1) + (stat.pass*1) }}</td>
206 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
209 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
212 style="padding-left: 10px; font-size: 15px; width: 13%;">
214 <div class="pass-bar"
215 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
217 <div class="fail-bar"
218 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
228 <h3 class="heading-small"></h3>
229 <table class="striped" cellspacing="0"
236 <p> Statistics by Suite </p>
248 <p>Pass / Fail </p>
254 ng-repeat="stat in selectedRobotTestResult.robot.statistics.suite.stat">
256 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
259 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
260 (stat.fail * 1) + (stat.pass*1) }}</td>
262 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
265 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
268 style="padding-left: 10px; font-size: 15px; width: 13%;">
270 <div class="pass-bar"
271 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
273 <div class="fail-bar"
274 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
283 <h2 class="heading-small"></h2>
285 <h3 class="heading-small">
286 <a href="javascript:void(0);"
287 ng-click="showDetailsLog = ! showDetailsLog">Test
290 <div ng-show="showDetailsLog">
292 <p>Root Suite Full Name:
293 {{selectedRobotTestResult.robot.suite.name}}</p>
295 {{selectedRobotTestResult.robot.suite.source}}</p>
297 {{selectedRobotTestResult.robot.suite.status.status}}</p>
299 {{selectedRobotTestResult.robot.suite.status.starttime}}</p>
301 {{selectedRobotTestResult.robot.suite.status.endtime}}</p>
303 <h2 class="heading-small"></h2>
305 <p>Sub-suite Full Name:
306 {{selectedRobotTestResult.robot.suite.suite.name}}</p>
308 {{selectedRobotTestResult.robot.suite.suite.doc}}</p>
310 {{selectedRobotTestResult.robot.suite.suite.source}}</p>
312 {{selectedRobotTestResult.robot.suite.suite.status.status}}</p>
314 {{selectedRobotTestResult.robot.suite.suite.status.starttime}}</p>
316 {{selectedRobotTestResult.robot.suite.suite.status.endtime}}</p>
320 <h2 class="heading-small"></h2>
323 <h4 class="heading-small">Sub-suite Robot
326 ng-repeat="kw in selectedRobotTestResult.robot.suite.suite.kw"
327 ng-include="'kwVal'"></li>
331 <h2 class="heading-small"></h2>
333 <h3 class="heading-small">Test Cases</h3>
334 <table class="striped" cellspacing="0"
341 <p> Full Name </p>
344 <p>Documentation </p>
350 <p>Start Time </p>
353 <p>End Time </p>
356 <p>Critical </p>
365 ng-repeat="test in selectedRobotTestResult.robot.suite.suite.test"
366 ng-class="{selected:test.id == selectedTestId}"
367 ng-click="setClickedTest(test)">
369 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
372 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.doc}}</td>
374 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.status}}</td>
376 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.starttime}}</td>
378 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.endtime}}</td>
380 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.critical}}</td>
382 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.content}}</td>
388 <h2 class="heading-small"></h2>
391 <h4 class="heading-small">Robot keywords of
392 the selected test case</h4>
393 <li ng-repeat="kw in selectedTest.kw"
394 ng-include="'kwVal3'"></li>
401 <script type="text/ng-template" id="kwVal">
402 <h2 class="heading-small"></h2>
404 <a href="javascript:void(0);" ng-click="showDetails = ! showDetails">
407 <div ng-show="showDetails">
408 <p>     Type:
410 <p>     Library:
412 <p>    
413 Documentation: {{kw.doc}}</p>
414 <p>     Start time:
415 {{kw.status.starttime}}</p>
416 <p>     End time:
417 {{kw.status.endtime}}</p>
418 <p>     Status:
419 {{kw.status.status}}</p>
421 <p>     Used Robot
424 <li ng-repeat="kw in kw.kw" ng-include="'kwVal'"></li>
428 <script type="text/ng-template" id="kwVal3">
429 <h2 class="heading-small"></h2>
431 <a href="javascript:void(0);" ng-click="showDetails4 = ! showDetails4">
434 <div ng-show="showDetails4">
435 <p>     Type:
437 <p>     Library:
439 <p>    
440 Documentation: {{kw.doc}}</p>
441 <p>     Start time:
442 {{kw.status.starttime}}</p>
443 <p>     End time:
444 {{kw.status.endtime}}</p>
445 <p>     Status:
446 {{kw.status.status}}</p>
448 <p>     Used Robot
451 <li ng-repeat="kw in kw.kw" ng-include="'kwVal3'"></li>