Skip to main content
# PyUnitReport

banrieen_PyUnitReport modified from PyUnitReport is a unittest test runner that save test results in Html files, for human readable presentation of results.

## Installation

```bash
$ pip install banrieen_PyUnitReport
```

## Usage

### testcase

```python
from pyunitreport import HTMLTestRunner
import unittest

class TestStringMethods(unittest.TestCase):
""" Example test for HtmlRunner. """

def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')

def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())

def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)

def test_error(self):
""" This test should be marked as error one. """
raise ValueError

def test_fail(self):
""" This test should fail. """
self.assertEqual(1, 2)

@unittest.skip("This is a skipped test.")
def test_skip(self):
""" This test should be skipped. """
pass

if __name__ == '__main__':
unittest.main(testRunner=HTMLTestRunner(output='example_dir'))
```

In most cases, you can use `PyUnitReport` with `unittest.main`, just pass it with the `testRunner` keyword.

For `HTMLTestRunner`, the only parameter you must pass in is `output`, which specifies the directory of your generated report. Also, if you want to specify the report name, you can use the `report_name` parameter, otherwise the report name will be the datetime you run test. And if you want to run testcases in `failfast` mode, you can pass in a `failfast` parameter and assign it to be True.

Here is another way to run the testcases.

```python
from pyunitreport import HTMLTestRunner

kwargs = {
"output": output_folder_name,
"report_name": report_name,
"failfast": True
}
result = HTMLTestRunner(**kwargs).run(task_suite)
```

### testsuite

For those who have `test suites` it works too, just create a runner instance and call the run method with your suite.

Here is an example:

```python
from unittest import TestLoader, TestSuite
from pyunitreport import HTMLTestRunner
import ExampleTest
import Example2Test

example_tests = TestLoader().loadTestsFromTestCase(ExampleTests)
example2_tests = TestLoader().loadTestsFromTestCase(Example2Test)

suite = TestSuite([example_tests, example2_tests])
kwargs = {
"output": output_folder_name,
"report_name": report_name,
"failfast": True
}
runner = HTMLTestRunner(**kwargs)
runner.run(suite)
```

## Output

### Console output

This is an example of what you got in the console.

```text
$ python examples/testcase.py

Running tests...
----------------------------------------------------------------------
This test should be marked as error one. ... ERROR (0.000575)s
This test should fail. ... FAIL (0.000564)s
test_isupper (__main__.TestStringMethods) ... OK (0.000149)s
This test should be skipped. ... SKIP (0.000067)s
test_split (__main__.TestStringMethods) ... OK (0.000167)s
test_upper (__main__.TestStringMethods) ... OK (0.000134)s

======================================================================
ERROR [0.000575s]: This test should be marked as error one.
----------------------------------------------------------------------
Traceback (most recent call last):
File "examples/testcase.py", line 23, in test_error
raise ValueError
ValueError

======================================================================
FAIL [0.000564s]: This test should fail.
----------------------------------------------------------------------
Traceback (most recent call last):
File "examples/testcase.py", line 27, in test_fail
self.assertEqual(1, 2)
AssertionError: 1 != 2

----------------------------------------------------------------------
Ran 6 tests in 0.002s

FAILED
(Failures=1, Errors=1, Skipped=1)

Generating HTML reports...
Template is not specified, load default template instead.
Reports generated: /Users/Leo/MyProjects/ApiTestEngine/src/pyunitreport/reports/example_dir/2017-07-26-23-33-49.html
```

### Html Output

![html output](resources/html_output.gif)

![html output](resources/html_output.png)


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

banrieen_PyUnitReport-0.1.4.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

banrieen_PyUnitReport-0.1.4-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file banrieen_PyUnitReport-0.1.4.tar.gz.

File metadata

File hashes

Hashes for banrieen_PyUnitReport-0.1.4.tar.gz
Algorithm Hash digest
SHA256 bda7494ac2d25a0f5b0f11087f16dcf82f9c104a8de314f1712202c917e05aa2
MD5 e3c9bd796668f866e1ff9f725dcafc9b
BLAKE2b-256 500a33534ef14aa95458512cd0906c2a9b22f470c58cce4e7e01db866b206c2d

See more details on using hashes here.

File details

Details for the file banrieen_PyUnitReport-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for banrieen_PyUnitReport-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 59a4b0823d79fcd1949770352873255c72def95a6f584038f36b3110bb4c7ffe
MD5 119dcc9ce514896a12ab291cf47ebeb6
BLAKE2b-256 1dae002494878496f18feca009f88f3f370c61042d1bf81458eee028e43f20a2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page