diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000000..bb7e28886f --- /dev/null +++ b/tests/README.md @@ -0,0 +1,67 @@ +# centreon-plugins Automated tests + +## Robot tests + +In this project robot is used to order the integration tests. + +### install snmpsim + +See docker image in ./github/docker/testing/ to find the right package to install and the method to install it. +Once snmpsim is installed, you need to create the snmp user : + +````bash +useradd snmp +mkdir -p /var/lib/snmp/cert_indexes/ +chown snmp:snmp -R /var/lib/snmp/cert_indexes/ +```` + +to launch snmpsim use this from the root of the project (one level above this file) : +```bash +sudo snmpsim-command-responder --logging-method=null --agent-udpv4-endpoint=127.0.0.1:2024 --process-user=snmp --process-group=snmp --data-dir='./tests' & +# to test it : snmpwalk -v2c -c hardware/server/lenovo/xcc/snmp/system-health-ok 127.0.0.1:2024 +``` + +test should be run with the "robot" binary, indicating the path to the test file to run. +robot consider every file with .robot extension and try to execute every test case in it. + +```bash +robot tests/ +``` + +you can filter the tests run by specifying -e to exclude and -i to include a specific tag before the file path. + + +## Anonymize tests + +As most snmpwalk are provided by users, a script allow to anonymize the data and remove oid not used. +the option `--no-anonymization` allow to not anonymize the data and only remove oid not used. + +```bash +perl ./tests/scripts/slim_walk.pl --snmpwalk-path=tests/hardware/client.snmpwalk > smaller-file.snmpwalk +``` + + +## unit tests + +In this project perl test::v0 is used to run unit tests. + +## test coverage +To check your test coverage you can use Deve::Cover +when launching any type of test, prepend this to your command : + +```bash +PERL5OPT=-MDevel::Cover +``` + +for exemple for robot : + +```bash +PERL5OPT=-MDevel::Cover robot tests/ +``` + +It will create a cover_db/ folder to store all data, you can use the `cover` to generate a html report. +```bash +cover +``` + +Then open the coverage.html file in the cover_db/ folder to navigate your code with coverage.