在 PyDev/LiClipse/Eclipse 中设置默认工作目录

Setting a default working directory in PyDev/LiClipse/Eclipse

我正在使用 LiClipse / PyDev。当我 运行 某些测试或其他 python 模块来自包资源管理器时,通过右键单击 -> 运行 as -> python 运行,设置工作目录到相应文件的目录,例如${workspace_loc:MyProject/tests/misc}.

不过我希望一切都从项目的根文件夹中执行。在 运行 配置 -> 参数下,可以通过 "default" 按钮 selected 将工作目录设置为 ${project_loc:/selected项目名称}。不幸的是,默认情况下 "default" 按钮显然不是 selected,而是具有如上所述的目录设置的 "other" 选项。

当有很多测试模块时,为每个模块手动 select 这个 "default" 按钮会变得有点烦人。那么如何让 LiClipse 在默认情况下实际 select 那个按钮呢?或者以其他方式默认使用项目目录作为工作目录?

之前已经有人问过类似的问题,但没有令人满意的答案:。唯一的结论是 Eclipse 错误不允许配置默认选项的值,但这对我的目的来说不是必需的。我只希望这个选项实际上是 selected.

这个问题可能是 PyDev 特有的,因为根据我的阅读,Eclipse 似乎通常有 "default" 选项 selected。

嗯,不幸的是,正如您所发现的,确实无法在 IDE 中设置该默认值。

不过,为了解决您与测试相关的问题,我的建议是使用 pytest runner(您可能必须安装它——说明位于:https://pytest.org/latest/getting-started.html,然后在 PyDev > PyUnit 首选项中设置设置使用 pytest runner)...作为一个注释,即使您不会使用 pytest 编写测试的方式(我强烈推荐),并且使用 unittest.TestCase,它也应该工作...

当 运行 pytest 时,PyDev 需要遵循不同的逻辑,因为它处理和加载其固定装置的方式使其始终使用相同的文件夹(我认为它是源文件夹,但如果你使用源文件夹和项目文件夹一样它应该工作 - 如果不是这种情况,在 pytest 中,创建一个会话自动使用夹具是微不足道的,您可以使用它来将工作目录更改为给定文件夹(使用 unittest.TestCase 这更难做到,因为您受到测试 class 层次结构的限制,但您也可以覆盖测试的设置来做到这一点。