代码之家  ›  专栏  ›  技术社区  ›  Paymahn Moghadasian

无法在Pycharm中调试单元测试

  •  7
  • Paymahn Moghadasian  · 技术社区  · 6 年前

    我在pycharm中调试单元测试时遇到问题。我可以通过配置很好地运行它们,但当我运行调试器时,会得到以下错误输出:

    Error
    Traceback (most recent call last):
      File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 59, in testPartExecutor
        yield
      File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/case.py", line 605, in run
        testMethod()
      File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 34, in testFailure
        raise self._exception
    ImportError: Failed to import test module: tests
    Traceback (most recent call last):
      File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 462, in _find_test_path
        package = self._get_module_from_name(name)
      File "/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
        __import__(name)
      File "/Users/paymahn/solvvy/scheduler/tests/__init__.py", line 2, in 
        import tests.test_setup_script
      File "/Users/paymahn/solvvy/scheduler/tests/test_setup_script.py", line 3, in 
        import setup
      File "/Applications/PyCharm.app/Contents/helpers/pydev/setup.py", line 87, in 
        data_files.append(('pydevd_attach_to_process', [os.path.join('pydevd_attach_to_process', f) for f in os.listdir('pydevd_attach_to_process') if accept_file(f)]))
    FileNotFoundError: [Errno 2] No such file or directory: 'pydevd_attach_to_process'
    

    我的目录结构是:

    enter image description here

    我的unittest配置为:

    enter image description here

    tests/test_setup_script.py 看起来像:

    import unittest
    import os
    import setup # the path to this file is scheduler/setup.py. This import may be breaking things
    
    
    class TestSetupScript(unittest.TestCase):
    
    
        def test_load_db_connection_valid_yaml_file(self):
            file_name = "valid-yaml.yml"
            with open(file_name, 'w') as file:
                file.write("""
                test:
                    hello world
                    a = b
                    """)
    
            yaml = setup.load_yaml_configuration(file_name)
            # I want to debug the line above, hence no assertions here
    

    什么是 pydevd_attach_to_process 如何确保在调试期间找到它?问题是否与正在查找的文件/目录无关?

    1 回复  |  直到 6 年前
        1
  •  5
  •   yole    6 年前

    事实上,之所以会出现故障,是因为代码中的“导入设置”导入了作为PyCharm调试器运行时一部分的设置模块,而不是您自己的设置模块。最简单的修复方法是重命名您的设置。py文件,并相应地更新代码中的导入。