3

我有一个位于路径中的 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

但是,我还需要使用命令行中的 nosetests 运行这些测试。这是因为,为了为我的项目运行所有测试,而不是在默认提供的特定文件中运行它们的选项,最简单的解决方案是只使用“nosetests”命令,而不是弄乱 Eclipse启动配置。但是,nosetests 需要从 $(PYDEV_PROJECT_ROOT) 根目录运行,因此需要在路径中指定“tests/”。

有没有办法强制 eclipse 从项目根目录运行单元测试,以便我传递给 readOptimizationConfig 的路径适用于这两种方法?

4

1 回答 1

2

可以在 PyDev 中执行此操作,但您必须针对每个启动配置执行此操作,因此有点无聊。

无论如何,您首先尝试作为包含单元测试的脚本运行(就像您通常那样 - 例如绿色“运行”箭头按钮旁边的下拉菜单,然后运行为... - Python单元测试)。由于您缺少cfg文件,此启动将失败。现在转到运行配置(运行下拉菜单 - 运行配置),打开参数选项卡并在工作目录下的底部输入您想要的路径(或使用工作区...按钮浏览它)。例如,如果您想从项目根目录运行并且您的项目名为awesome-project,您可以编写:

${workspace_loc:awesome-project}

现在您应该有一个有效的启动配置,您可以从 Run 和 Debug 菜单中使用它。我有时将这些配置重命名为立即引人注目的名称,例如“awesome-project TEST”。

于 2013-02-12T13:24:57.273 回答