来自终端的 运行 测试问题
Issue with running test from terminal
我在 PyCharm
中使用 Python 2.7.9
这是我的项目结构:
/JUAN
/framework
/config
/page_objects
/locators
/tests
/log_in
/wrapper
在 locators
文件夹中,我将每个页面对象的定位器存储在 JSON 文件中。在 log_in
文件夹中我有一个测试。
这是测试的内容:
""" Test to verify the Sign In page."""
import unittest
from framework.page_objects.sign_in_page import SignInPage
from framework.tests.selenium_test_base import SeleniumTestBase
class TestVerifyPage(SeleniumTestBase):
def test_verify_page(self):
sign_inPage = SignInPage()
sign_inPage.verify_elements_on_page()
if __name__ == "__main__":
unittest.main()
如果我 运行 它右击并选择 运行 测试通过。但是如果我尝试通过终端执行它,我会遇到以下问题:
执行的行:
C:\JUAN\framework>python -m unittest ./tests/log_in/test_verify_page.py test_verify_page()
异常:
Traceback (most recent call last):
File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:\Python27\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\Python27\lib\unittest\__main__.py", line 12, in <module>
main(module=None)
File "C:\Python27\lib\unittest\main.py", line 94, in __init__
self.parseArgs(argv)
File "C:\Python27\lib\unittest\main.py", line 149, in parseArgs
self.createTests()
File "C:\Python27\lib\unittest\main.py", line 158, in createTests
self.module)
File "C:\Python27\lib\unittest\loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "C:\Python27\lib\unittest\loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
ValueError: Empty module name
我找到了 2 个解决方案:
解决方案 1:
我删除了 framework
文件夹。
在终端中执行的行也是:
python -m unittest test_verify_page
解决方案 2:
如果要离开模块结构,需要在根目录下创建setup.py
文件
setup.py
内容:
from distutils.core import setup
setup(name='SxD',
packages=['framework','config', 'page_objects','tests', 'wrapper'])
然后在根目录下执行这个命令行:
python setup.py install
创建了一个包含模块引用的 build
文件夹。
我在 PyCharm
中使用 Python 2.7.9这是我的项目结构:
/JUAN
/framework
/config
/page_objects
/locators
/tests
/log_in
/wrapper
在 locators
文件夹中,我将每个页面对象的定位器存储在 JSON 文件中。在 log_in
文件夹中我有一个测试。
这是测试的内容:
""" Test to verify the Sign In page."""
import unittest
from framework.page_objects.sign_in_page import SignInPage
from framework.tests.selenium_test_base import SeleniumTestBase
class TestVerifyPage(SeleniumTestBase):
def test_verify_page(self):
sign_inPage = SignInPage()
sign_inPage.verify_elements_on_page()
if __name__ == "__main__":
unittest.main()
如果我 运行 它右击并选择 运行 测试通过。但是如果我尝试通过终端执行它,我会遇到以下问题:
执行的行:
C:\JUAN\framework>python -m unittest ./tests/log_in/test_verify_page.py test_verify_page()
异常:
Traceback (most recent call last):
File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:\Python27\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\Python27\lib\unittest\__main__.py", line 12, in <module>
main(module=None)
File "C:\Python27\lib\unittest\main.py", line 94, in __init__
self.parseArgs(argv)
File "C:\Python27\lib\unittest\main.py", line 149, in parseArgs
self.createTests()
File "C:\Python27\lib\unittest\main.py", line 158, in createTests
self.module)
File "C:\Python27\lib\unittest\loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "C:\Python27\lib\unittest\loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
ValueError: Empty module name
我找到了 2 个解决方案:
解决方案 1:
我删除了 framework
文件夹。
在终端中执行的行也是:
python -m unittest test_verify_page
解决方案 2:
如果要离开模块结构,需要在根目录下创建setup.py
文件
setup.py
内容:
from distutils.core import setup
setup(name='SxD',
packages=['framework','config', 'page_objects','tests', 'wrapper'])
然后在根目录下执行这个命令行:
python setup.py install
创建了一个包含模块引用的 build
文件夹。