在virtualenv中工作时在Pycharm中运行测试

时间:2019-05-23 13:42:40

标签: pycharm

使用PyCharm 2018.3

我在conda virtualenv中工作。我有一个文件add.pytest_add.py,它具有unittest类来测试add.py模块。

从普通终端(远离pycharm),在激活virtualenv的情况下,我可以运行python test_add.py,并且测试运行得很好。

在pycharm内部,我已将解释器设置为使用相同的virtualenv,我可以运行add.py文件,并且可以运行。

但是,从pycharm内部,如果我尝试运行'test_add.py`,它将失败,并出现长堆栈跟踪,并以DLL导入错误结尾:

Testing started at 9:23 PM ...
C:\ProgramData\Anaconda3\envs\nambu\python.exe "C:\Program Files\JetBrains\PyCharm 2018.3.6\helpers\pycharm\_jb_pytest_runner.py" --path C:/Users/kanugu/code/morsel/test_add.py
Launching pytest with arguments C:/Users/kanugu/code/morsel/test_add.py in C:\Users\kanugu\code\morsel

Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2018.3.6\helpers\pycharm\_jb_pytest_runner.py", line 31, in <module>
pytest.main(args, plugins_to_load)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\config\__init__.py", line 60, in main
config = _prepareconfig(args, plugins)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\config\__init__.py", line 195, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\manager.py", line 68, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\manager.py", line 62, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\callers.py", line 203, in _multicall
gen.send(outcome)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\helpconfig.py", line 93, in pytest_cmdline_parse
config = outcome.get_result()
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\config\__init__.py", line 654, in pytest_cmdline_parse
self.parse(args)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\config\__init__.py", line 871, in parse
self._preparse(args, addopts=addopts)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\config\__init__.py", line 816, in _preparse
self.pluginmanager.load_setuptools_entrypoints("pytest11")
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pluggy\manager.py", line 274, in load_setuptools_entrypoints
plugin = ep.load()
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pkg_resources\__init__.py", line 2411, in load
return self.resolve()
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pkg_resources\__init__.py", line 2417, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\assertion\rewrite.py", line 296, in load_module
six.exec_(co, mod.__dict__)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pytest_doctestplus\plugin.py", line 18, in <module>
from .output_checker import OutputChecker, FIX
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\_pytest\assertion\rewrite.py", line 296, in load_module
six.exec_(co, mod.__dict__)
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\pytest_doctestplus\output_checker.py", line 10, in <module>
import numpy as np
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\numpy\__init__.py", line 140, in <module>
from . import _distributor_init
File "C:\ProgramData\Anaconda3\envs\nambu\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.

Process finished with exit code 1

不确定所有其他组合都工作正常时,test_add.py为何会有导入问题。

1 个答案:

答案 0 :(得分:0)

尝试2019.1.3 RC构建。 The problem应该在此处解决。