blob: f66cdd59d07a4fcdf1ae8991b5d54e2664499792 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
### Overview
Dell EMC OpenManage Ansible Modules unit test scripts are located under
[unit](./tests/unit) directory.
### Implementing the unit tests
Any contribution must have an associated unit test. This section covers the
tests that need to be carried out.
* The unit tests are required for each new resource, bug fix, or enhancement. They must cover what is being submitted.
* The name of the test modules should start with the prefix "test_" in
addition to the tested module name. For example: test_ome_user
### Prerequisites
* Dell EMC OpenManage collections - to install run `ansible-galaxy collection
install dellemc.openmanage`
* To run the unittest for iDRAC modules, install OpenManage Python Software Development Kit (OMSDK) using
`pip install omsdk --upgrade` or from [Dell EMC OpenManage Python SDK](https://github.com/dell/omsdk)
### Executing unit tests
You can execute them manually by using any tool of your choice, like `pytest` or `ansible-test`.
#### Executing with `ansible-test`
* Clone [Ansible repository](https://github.com/ansible/ansible) from GitHub to local $ANSIBLE_DIR.
* Copy `compat` directory from the cloned repository path.
`$ANSIBLE_DIR/test/units/` to the location of the installed Dell EMC OpenManage collection `$ANSIBLE_COLLECTIONS_PATHS/ansible_collections/dellemc/openmanage/tests/unit`.
* Copy `utils.py` file from `$ANSIBLE_DIR/test/units/modules` tests location to the location of the installed collection `$ANSIBLE_COLLECTIONS_PATHS/ansible_collections/dellemc/openmanage/tests/unit/plugins/modules`
* Edit the copied `utils.py` to refer the above `compat` package as below:
```python
from units.compat import unittest
# Replace the above lines in utils.py as below
from ansible_collections.dellemc.openmanage.tests.unit.compat import unittest
```
* To install `ansible-test` requirements use
```
ansible-test units --requirements
```
* To perform a test, run the following command
```
ansible-test units -vvv
```
* To run any specific module use the below command,
```
ansible-test units idrac_server_config_profile
```
See [here](https://docs.ansible.com/ansible/latest/dev_guide/testing_units.html#testing-units) for more details on unit-testing.
#### Executing with `pytest`
See [here](https://docs.pytest.org/en/stable/).
### Acceptance criteria
The code coverage of new module should be more than 90%.
Execute code coverage with `pytest` as explained [here](https://pytest-cov.readthedocs.io/en/latest/reporting.html).
|