gpt4 book ai didi

selenium 测试的 Python 项目结构

转载 作者:行者123 更新时间:2023-11-28 20:15:28 29 4
gpt4 key购买 nike

我对 Python (2.7) 模块和包有点生疏,所以我希望能找到一些帮助。我正在使用 Selenium 编写一些测试。我想按“场景系列”组织测试,并且我想实现一个帮助程序类来处理一些样板文件,这些样板文件将成为我所有测试的基类。基本上我想要一个看起来像这样的结构:

.
├── assets
│ └── ressource.ext
├── tests
│ ├── __init__.py
│ ├── user
│ │ ├── __init__.py
│ │ └── upload.py
│ └── visitor
│ ├── __init__.py
│ ├── homepage.py
│ ├── login.py
│ ├── search.py
│ └── signup.py
└── utils
├── __init__.py
└── base.py

我完全被困在如何使 utils.base 模块可见,例如tests.visitor.signup 模块 and 仍然允许使用 python tests/visitor/signup.py 运行此特定测试。我该怎么做?

谢谢!

编辑:为了让事情更容易,这里是我正在尝试做的一个虚拟示例:

mkdir -p {utils,tests/user}
touch {utils,tests{,/user}}/__init__.py

echo -e "import unittest\n\nclass Base(unittest.TestCase):\n pass" > utils/base.py
echo -e "from utils.base import Base\n\nclass MyTest(Base):\n pass\n\nif __name__ == '__main__':\n unittest.main()" > tests/user/upload.py

这会生成以下树,其中包含空的 __init__.py 文件和我试图在 tests/user/upload.py 中实现的导入:

dummy/
├── tests
│   ├── __init__.py
│   └── user
│   ├── __init__.py
│   └── upload.py
└── utils
├── __init__.py
└── base.py

现在,如果我在 dummy/ 文件夹中,我会得到这个:

(env)dummy  $ python tests/user/upload.py 
Traceback (most recent call last):
File "tests/user/upload.py", line 1, in <module>
from utils.base import Base
ImportError: No module named utils.base

但是如果我交互式地运行它显然没有问题:

(env) dummy  $ python
Python 2.7.6 (default, Jan 16 2014, 16:39:48)
>>> from utils.base import Base
>>>

我的问题一定很愚蠢,但我看不出我做错了什么。我还没有得到的是指定 python 路径 ((env) dummy $ PYTHON_PATH=. python tests/user/upload.py) 不能解决问题。

最佳答案

可以设置PYTHONPATH搜索当前目录:

PYTHONPATH=. python tests/user/upload.py

或者你可以使用测试运行器,比如 nose:

nosetests tests/user/upload.py

或者,如果您不想使用 nose,您可以创建自己的测试运行器.例如一个 runtests.py 文件:

import unittest
from tests.user.upload import *
unittest.main()

然后:

python runtests.py

此测试运行器可以导入更多测试,或者可以选择导入哪些测试。最终,我建议使用 nose 而不是编写您自己的测试运行器。

在层次结构的顶部启动测试运行器是可行的,因为 Python 将脚本的当前目录添加到它搜索模块的路径列表中。

关于selenium 测试的 Python 项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589034/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com