我有一个生活在路径上的PyDev单元测试模块:
$(PYDEV_PROJECT_ROOT)/tests/my_unit_test.py
我正在尝试使用Eclipse PyDev的单元测试工具。我的单元测试必须读取如下配置文件:
(foo,bar,baz) = myModule.readOptimizationConfig("tests/optimization_config_file.cfg")
但是,这不起作用,因为PyDev在运行之前进入'tests'目录,因此在给予readOptimizationConfig的路径中指定'tests /'会使其尝试加载
$(PYDEV_PROJECT_ROOT)/tests/tests/optimization_config_file.cfg
但是,我还需要使用命令lin中的nosetests来运行这些测试。 这是因为,为了运行我的项目的所有测试,而不是在默认提供的特定文件中运行它们的选项,最简单的解决方案是使用'nosetests'命令,而不是弄乱Eclipse启动配置。但是,需要从$(PYDEV_PROJECT_ROOT)根目录运行nosetests,因此它需要路径中指定的'tests /'。
有没有办法强制eclipse从项目根目录运行单元测试,这样我传递给readOptimizationConfig的路径将适用于这两种方法?
答案 0 :(得分:2)
可以在PyDev中执行此操作,但您必须按照每个启动配置执行此操作,因此它有点无聊。
无论如何,你首先尝试运行包含单元测试的脚本(正常情况下) - 例如绿色“运行”箭头按钮旁边的下拉菜单然后运行为... - Python单元测试。由于您丢失了cfg
文件,此启动将失败。现在转到运行配置(运行下拉列表 - 运行配置),打开Arguments选项卡,在工作目录下的底部输入您想要的路径(或使用工作区...按钮浏览它)。例如,如果要从项目根目录运行并且项目名为awesome-project
,则可以写:
${workspace_loc:awesome-project}
现在您应该具有可以从“运行”和“调试”菜单中使用的有效启动配置。我有时会将这些配置重命名为可立即显示的内容,例如“令人敬畏的项目测试”。