I was discussing data driven tests with a colleague and how easy it to create in python just with nose test framework.
The file looks like:
I created a repository and shared with him following is current content of the Readme:
https://github.com/mubbashir/py_nosetest_data_driven
The file looks like:
def test_dirs():
for data in test_data():
yield check_dir, data[0], data[1]
def check_dir(dir_ref, dir_new_gen):
assert len(dir_ref) > 1
assert len(dir_new_gen) > 1
def test_data():
return [["dir1_ref", "dir1_gen"], ["dir2_ref", "dir2_gen"]]
I created a repository and shared with him following is current content of the Readme:
https://github.com/mubbashir/py_nosetest_data_driven
One file example to run data driven tests using python and nose tests with XML and HTML reports
Documents
Optional VENV (Python virtual environment)
- Create virtual environment
python -m venv venv
- Activate virtual env
- Linux/Mac
source venv/bin/activate
- Linux/Mac
$ source venv/bin/activate
(venv) [akhan@seq-akh-fc pipeline_workflow_tests] which python
~/workspace/pipeline_workflow_tests/venv/bin/python
Install and execute
- Install dependencies:
pip install -r requirements.txt
- Run tests
$nosetests -v
nose_test_generator.test_dirs('dir1_ref', 'dir1_gen') ... ok
nose_test_generator.test_dirs('dir2_ref', 'dir2_gen') ... ok
nose_test_generator.test_data ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.003s
OK
Run with reports
$nosetests -v --with-xunit --xunit-file=nose_test_results.xml --with-html-output --html-out-file=nose_test_results.html
nose_test_generator.test_dirs('dir1_ref', 'dir1_gen') ... ok
nose_test_generator.test_dirs('dir2_ref', 'dir2_gen') ... ok
nose_test_generator.test_data ... ok
----------------------------------------------------------------------
XML: /home/akhan/workspace/py_nosetest_data_driven/nose_test_results.xml
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK