Project

General

Profile

Application tests » History » Version 1

Rogers, Chris, 20 October 2011 11:27

1 1 Rogers, Chris
h1. Application tests
2
3
Applications tests are designed to test that the applications work properly. Here we check that the workflow ties together okay, produces correct physics, etc. The sorts of things anticipated to be done at application level are:
4
5
* Integration testing: check that we can work through a workflow okay - units tie together correctly and the code interfaces external libraries correctly
6
* Physics validation: simulation produces expected distributions and we reconstruct with appropriate residual distributions.
7
* Load testing: check that we can run big data files or for long periods without crashing
8
9
Usually application tests will check code executing at the level of applications in the bin directory. This is not enforced, but it's probably good practice to get in the habit of exercising these applications as part of the testing regime.
10
11
h2. Making a test
12
13
Application tests are done in python. There is a directory tree tests/integration/ that contains the application tests. There is a script tests/integration/integration_tests.bash that runs nosetests. This walks down the tree looking for folders like test_<dir> and files like test_<dir1>/test_<name>.py. It executes them in the same way as for the unit tests (look at the examples, or look at the unittest documentation - google it, the python.org server is down so I can't link directly).