112 lines
4.6 KiB
HTML
112 lines
4.6 KiB
HTML
<header class="bs-header">
|
|
<div class="container">
|
|
<h1 class="page-header">{{ job.name }} tests</h1>
|
|
<crumb-menu show-resolution="true" show-period="true">
|
|
<li>Job: {{ job.name }}</li>
|
|
</crumb-menu>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<loading-indicator></loading-indicator>
|
|
<fresh-check></fresh-check>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Tests</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<chart-line data="job.chartData" width="100%" height="250"
|
|
tick-format-x="d"></chart-line>
|
|
</div>
|
|
</div>
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Tests Failure Rate</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<chart-line data="job.chartDataRate" width="100%" height="250"
|
|
forceY="[0,1]" tick-format-x="%"></chart-line>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Recent Runs</h3>
|
|
</div>
|
|
<div class="panel-body table-responsive">
|
|
<table class="table table-hover status-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Link</th>
|
|
<th>Status</th>
|
|
<th>Run At</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="run in job.recentRuns"
|
|
ng-class="run.status == 'fail' ? 'danger' : 'success'">
|
|
<td><a href="{{ run.link }}">{{ run.link }}</a></td>
|
|
<td>{{ run.status }}</td>
|
|
<td>{{ run.start_date }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">Tests</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<form>
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><i class="fa fa-search"></i></div>
|
|
<input type="text" class="form-control" placeholder="Search for test" ng-model="job.searchTest" ng-change="job.onSearchChange()">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="table-responsive">
|
|
<table table-sort class="table table-hover status-table" data="job.tests">
|
|
<thead>
|
|
<tr>
|
|
<th sort-field="name">Test Name</a></th>
|
|
<th sort-field="passes">Passes</th>
|
|
<th sort-field="failures">Failures</th>
|
|
<th sort-field="skips">Skips</th>
|
|
<th sort-default sort-field="failuresRate">% Failures</th>
|
|
<th sort-field="meanRuntime">Mean Runtime</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr table-ref="table" ng-repeat="test in table.dataSorted | filter:{name:job.searchTest}"
|
|
ng-class="test.failuresRate / 100 | ctxcls">
|
|
<td><a ui-sref="test({ testId: test.name })">{{ test.name|limitTo:110 }}</a></td>
|
|
<td>{{ test.passes|number }}</td>
|
|
<td>{{ test.failures|number }}</td>
|
|
<td>{{ test.skips|number }}</td>
|
|
<td>{{ test.failuresRate|number:2 }}</td>
|
|
<td>{{ test.meanRuntime|number:2 }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|