在Ansible Tower使用的项目中的哪里存储自定义模块单元测试?

问题描述 投票:0回答:1

我完成了对三个Ansible定制模块的编码,这些模块存储在Ansible Tower项目使用的Git存储库中。目录树如下所示:

> files/
>   - a.txt
>   - b.txt
> library/
>   - common_code.py
> module_utils/
>   - custom_module1.py
>   - custom_module2.py
> templates/
>   - c.txt.j2
>   - d.txt.j2
> playbook.yml

我找不到应该存储自定义模块单元测试甚至module_utils单元测试的地方?在py文件旁边?最好的做法是什么?

谢谢。

ansible ansible-2.x ansible-tower
1个回答
0
投票

通过添加测试目录和多个__init__.py文件,我采用了更为传统的方式:

> files/
>   - a.txt
>   - b.txt
> library/
>   - __init__.py
>   - common_code.py
> module_utils/
>   - __init__.py
>   - custom_module1.py
>   - custom_module2.py
> templates/
>   - c.txt.j2
>   - d.txt.j2
> tests/
>   - __init__.py
>   - test_custom_module1.py
>   - test_custom_module2.py
>   - test_common_code.py
> playbook.yml

并导入其他文件以在像这样的单元测试中进行测试:

from module_utils.custom_module1 import *
from module_utils.custom_module2 import *
from library.common_code import *

我必须在自定义模块中修改导入:

try:
    from ansible.module_utils.common_code import util
except ImportError: # We except an ImportError in unit tests so we import it differently :D
    from module_utils.common_code import util

并添加了一些特定的异常来处理exit_json和fail_json,如here所述>>

© www.soinside.com 2019 - 2024. All rights reserved.