Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从终端运行测试时出现问题_Python_Terminal_Pycharm_Python Unittest - Fatal编程技术网

Python 从终端运行测试时出现问题

Python 从终端运行测试时出现问题,python,terminal,pycharm,python-unittest,Python,Terminal,Pycharm,Python Unittest,我正在PyCharm中使用Python 2.7.9 这是我的项目结构: /JUAN /framework /config /page_objects /locators /tests /log_in /wrapper 在locators文件夹中,我将每个页面对象的定位器存储在JSON文件中。在log\u In文件夹中,我有一个测试。 这是测试的内容: """ Test to

我正在PyCharm中使用Python 2.7.9

这是我的项目结构:

/JUAN
    /framework
        /config
        /page_objects
            /locators
        /tests
            /log_in
        /wrapper
locators
文件夹中,我将每个页面对象的定位器存储在JSON文件中。在
log\u 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()
如果我运行它,右键单击并选择Runthetestpasses。但是如果我试图通过终端执行它,我会遇到以下问题:

执行的行:

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
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\runpy.py”,第162行,在运行模块中作为主
“\uuuuu main\uuuuuuuuuuuuuuuuuuuuuuuuu”,fname,loader,pkg\u name)
文件“C:\Python27\lib\runpy.py”,第72行,在运行代码中
run_globals中的exec代码
文件“C:\Python27\lib\unittest\\uuuuu main\uuuuuu.py”,第12行,在
主(模块=无)
文件“C:\Python27\lib\unittest\main.py”,第94行,在\uuu init中__
self.parseArgs(argv)
文件“C:\Python27\lib\unittest\main.py”,第149行,在parseArgs中
self.createTests()
createTests中第158行的文件“C:\Python27\lib\unittest\main.py”
自我保护模块)
loadTestsFromNames中的第130行文件“C:\Python27\lib\unittest\loader.py”
suites=[self.loadTestsFromName(name,module)表示名称中的名称]
loadTestsFromName中第91行的文件“C:\Python27\lib\unittest\loader.py”
模块=___导入__('.'.join(部分\副本))
ValueError:模块名称为空
我找到了两种解决方案:

解决方案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
文件夹