changeset 551:6b4def531a4e

Added support for graphing ignored tests (currently only supported for `nunit`) ''from patch by `silk` to #385''
author dfraser
date Mon, 06 Apr 2009 08:41:29 +0000
parents 6a8dcbffdce2
children f20c079c17a7
files bitten/build/monotools.py bitten/report/testing.py bitten/templates/bitten_chart_tests.html bitten/templates/bitten_summary_tests.html
diffstat 4 files changed, 29 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/bitten/build/monotools.py
+++ b/bitten/build/monotools.py
@@ -79,7 +79,7 @@
                             else:
                                 test.attr['status'] = 'success'
                         else:
-                            test.attr['status'] = 'ignored'                            
+                            test.attr['status'] = 'ignore'
 
                         results.append(test)
                         total += 1
--- a/bitten/report/testing.py
+++ b/bitten/report/testing.py
@@ -42,7 +42,7 @@
         tests = []
         for rev, platform, status, num in cursor:
             if rev != prev_rev:
-                tests.append([rev, 0, 0])
+                tests.append([rev, 0, 0, 0])
                 prev_rev = rev
                 platform_total = 0
             if platform != prev_platform:
@@ -51,14 +51,19 @@
 
             platform_total += num
             tests[-1][1] = max(platform_total, tests[-1][1])
-            if status != 'success':
+            if status == 'success':
+                pass
+            elif status == 'ignore':
+                tests[-1][3] = max(num, tests[-1][3])
+            else:
                 tests[-1][2] = max(num, tests[-1][2])
 
         data = {'title': 'Unit Tests',
                 'data': [
                     [''] + ['[%s]' % item[0] for item in tests],
                     ['Total'] + [item[1] for item in tests],
-                    ['Failures'] + [item[2] for item in tests]
+                    ['Failures'] + [item[2] for item in tests],
+                    ['Ignored'] + [item[3] for item in tests],
                 ]}
 
         return 'bitten_chart_tests.html', data
@@ -80,6 +85,7 @@
         cursor.execute("""
 SELECT item_fixture.value AS fixture, item_file.value AS file,
        COUNT(item_success.value) AS num_success,
+       COUNT(item_ignore.value) AS num_ignore,
        COUNT(item_failure.value) AS num_failure,
        COUNT(item_error.value) AS num_error
 FROM bitten_report AS report
@@ -91,6 +97,9 @@
  LEFT OUTER JOIN bitten_report_item AS item_success
   ON (item_success.report=report.id AND item_success.item=item_fixture.item AND
       item_success.name='status' AND item_success.value='success')
+ LEFT OUTER JOIN bitten_report_item AS item_ignore
+  ON (item_ignore.report=report.id AND item_ignore.item=item_fixture.item AND
+      item_ignore.name='status' AND item_ignore.value='ignore')
  LEFT OUTER JOIN bitten_report_item AS item_failure
   ON (item_failure.report=report.id AND item_failure.item=item_fixture.item AND
       item_failure.name='status' AND item_failure.value='failure')
@@ -102,19 +111,24 @@
 ORDER BY fixture""", (build.id, step.name))
 
         fixtures = []
-        total_success, total_failure, total_error = 0, 0, 0
-        for fixture, file, num_success, num_failure, num_error in cursor:
-            fixtures.append({'name': fixture, 'num_success': num_success,
+        total_success, total_ignore, total_failure, total_error = 0, 0, 0, 0
+        for fixture, file, num_success, num_ignore, num_failure, num_error in cursor:
+            fixtures.append({'name': fixture, 
+                             'num_success': num_success,
+                             'num_ignore': num_ignore,
                              'num_error': num_error,
                              'num_failure': num_failure})
             total_success += num_success
+            total_ignore += num_ignore
             total_failure += num_failure
             total_error += num_error
             if file:
                 fixtures[-1]['href'] = req.href.browser(config.path, file)
 
         data = {'fixtures': fixtures,
-                'totals': {'success': total_success, 'failure': total_failure,
+                'totals': {'success': total_success, 
+                           'ignore': total_ignore,
+                           'failure': total_failure,
                            'error': total_error}
                }
         return 'bitten_summary_tests.html', data
--- a/bitten/templates/bitten_chart_tests.html
+++ b/bitten/templates/bitten_chart_tests.html
@@ -2,6 +2,7 @@
  <chart_type>
   <value>area</value>
   <value>column</value>
+  <value>line</value>
  </chart_type>
 
  <axis_category size="10" orientation="diagonal_up"
@@ -25,6 +26,7 @@
  <series_color>
   <color>99dd99</color>
   <color>ff0000</color>
+  <color>ffff00</color>
  </series_color>
 
  <legend_label layout="vertical" alpha="60"/>
--- a/bitten/templates/bitten_summary_tests.html
+++ b/bitten/templates/bitten_summary_tests.html
@@ -8,7 +8,7 @@
   <table class="listing tests">
    <thead><tr>
     <th>Test Fixture</th><th>Total</th>
-    <th>Failures</th><th>Errors</th>
+    <th>Failures</th><th>Ignores</th><th>Errors</th>
    </tr></thead>
    <tbody><tr py:for="item in data.fixtures"
               class="${item.num_failure or item.num_error and 'failed' or None}">
@@ -16,14 +16,16 @@
      <a py:when="item.href" href="$item.href">$item.name</a>
      <py:otherwise>$item.name</py:otherwise>
     </th>
-    <td>${item.num_success + item.num_failure + item.num_error}</td>
+    <td>${item.num_success + item.num_failure + item.num_error + item.num_ignore}</td>
     <td>$item.num_failure</td>
+    <td>$item.num_ignore</td>
     <td>$item.num_error</td>
    </tr></tbody>
    <tbody class="totals"><tr py:with="totals = data.totals">
     <th>Total</th>
-    <td>$totals.success</td>
+    <td>${totals.success + totals.failure + totals.ignore + totals.error}</td>
     <td>$totals.failure</td>
+    <td>$totals.ignore</td>
     <td>$totals.error</td>
    </tr></tbody>
   </table>
Copyright (C) 2012-2017 Edgewall Software