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">
93 <div ng-hide="!selectedLayer || !selectedTestSuiteName">
95 <h2 class="heading-small"></h2>
97 <h3 class="heading-small">
103 <p>Name: {{selectedRobotTestResult.name}}</p>
105 {{selectedRobotTestResult.robot.generated}}</p>
107 {{selectedRobotTestResult.robot.generator}}</p>
109 {{selectedRobotTestResult.robot.errors}}</p>
111 <h2 class="heading-small"></h2>
112 <h3 class="heading-small">
113 <u>Test Statistics</u>
116 <table class="striped" cellspacing="0"
123 <p> Total statistics </p>
135 <p>Pass / Fail </p>
141 ng-repeat="stat in selectedRobotTestResult.robot.statistics.total.stat">
143 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
146 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
147 (stat.fail * 1) + (stat.pass*1) }}</td>
149 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
152 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
155 style="padding-left: 10px; font-size: 15px; width: 13%;">
157 <div class="pass-bar"
158 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
160 <div class="fail-bar"
161 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
171 <h3 class="heading-small"></h3>
172 <table class="striped" cellspacing="0"
179 <p> Statistics by Tag </p>
191 <p>Pass / Fail </p>
197 ng-repeat="stat in selectedRobotTestResult.robot.statistics.tag.stat">
199 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
202 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
203 (stat.fail * 1) + (stat.pass*1) }}</td>
205 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
208 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
211 style="padding-left: 10px; font-size: 15px; width: 13%;">
213 <div class="pass-bar"
214 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
216 <div class="fail-bar"
217 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
227 <h3 class="heading-small"></h3>
228 <table class="striped" cellspacing="0"
235 <p> Statistics by Suite </p>
247 <p>Pass / Fail </p>
253 ng-repeat="stat in selectedRobotTestResult.robot.statistics.suite.stat">
255 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
258 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
259 (stat.fail * 1) + (stat.pass*1) }}</td>
261 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
264 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
267 style="padding-left: 10px; font-size: 15px; width: 13%;">
269 <div class="pass-bar"
270 ng-style="{ 'width': {{(100* stat.pass/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
272 <div class="fail-bar"
273 ng-style="{ 'width': {{(100* stat.fail/((stat.fail * 1) + (stat.pass*1)) )| number:0}} + '%' }"
282 <h2 class="heading-small"></h2>
284 <h3 class="heading-small">
285 <a href="javascript:void(0);"
286 ng-click="showDetailsLog = ! showDetailsLog">Test
289 <div ng-show="showDetailsLog">
291 <p>Root Suite Full Name:
292 {{selectedRobotTestResult.robot.suite.name}}</p>
294 {{selectedRobotTestResult.robot.suite.source}}</p>
296 {{selectedRobotTestResult.robot.suite.status.status}}</p>
298 {{selectedRobotTestResult.robot.suite.status.starttime}}</p>
300 {{selectedRobotTestResult.robot.suite.status.endtime}}</p>
302 <h2 class="heading-small"></h2>
304 <p>Sub-suite Full Name:
305 {{selectedRobotTestResult.robot.suite.suite.name}}</p>
307 {{selectedRobotTestResult.robot.suite.suite.doc}}</p>
309 {{selectedRobotTestResult.robot.suite.suite.source}}</p>
311 {{selectedRobotTestResult.robot.suite.suite.status.status}}</p>
313 {{selectedRobotTestResult.robot.suite.suite.status.starttime}}</p>
315 {{selectedRobotTestResult.robot.suite.suite.status.endtime}}</p>
319 <h2 class="heading-small"></h2>
322 <h4 class="heading-small">Sub-suite Robot
325 ng-repeat="kw in selectedRobotTestResult.robot.suite.suite.kw"
326 ng-include="'kwVal'"></li>
330 <h2 class="heading-small"></h2>
332 <h3 class="heading-small">Test Cases</h3>
333 <table class="striped" cellspacing="0"
340 <p> Full Name </p>
343 <p>Documentation </p>
349 <p>Start Time </p>
352 <p>End Time </p>
355 <p>Critical </p>
364 ng-repeat="test in selectedRobotTestResult.robot.suite.suite.test"
365 ng-class="{selected:test.id == selectedTestId}"
366 ng-click="setClickedTest(test)">
368 style="padding-left: 10px; font-size: 15px; width: 13%;">{{
371 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.doc}}</td>
373 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.status}}</td>
375 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.starttime}}</td>
377 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.endtime}}</td>
379 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.critical}}</td>
381 style="padding-left: 10px; font-size: 15px; width: 13%;">{{test.status.content}}</td>
387 <h2 class="heading-small"></h2>
390 <h4 class="heading-small">Robot keywords of
391 the selected test case</h4>
392 <li ng-repeat="kw in selectedTest.kw"
393 ng-include="'kwVal3'"></li>
400 <script type="text/ng-template" id="kwVal">
401 <h2 class="heading-small"></h2>
403 <a href="javascript:void(0);" ng-click="showDetails = ! showDetails">
406 <div ng-show="showDetails">
407 <p>     Type:
409 <p>     Library:
411 <p>    
412 Documentation: {{kw.doc}}</p>
413 <p>     Start time:
414 {{kw.status.starttime}}</p>
415 <p>     End time:
416 {{kw.status.endtime}}</p>
417 <p>     Status:
418 {{kw.status.status}}</p>
420 <p>     Used Robot
423 <li ng-repeat="kw in kw.kw" ng-include="'kwVal'"></li>
427 <script type="text/ng-template" id="kwVal3">
428 <h2 class="heading-small"></h2>
430 <a href="javascript:void(0);" ng-click="showDetails4 = ! showDetails4">
433 <div ng-show="showDetails4">
434 <p>     Type:
436 <p>     Library:
438 <p>    
439 Documentation: {{kw.doc}}</p>
440 <p>     Start time:
441 {{kw.status.starttime}}</p>
442 <p>     End time:
443 {{kw.status.endtime}}</p>
444 <p>     Status:
445 {{kw.status.status}}</p>
447 <p>     Used Robot
450 <li ng-repeat="kw in kw.kw" ng-include="'kwVal3'"></li>