2013-01-08 40 views
3

我有PyDev的单元测试模块,住在路径:PyDev的单元测试集运行目录

$(PYDEV_PROJECT_ROOT)/tests/my_unit_test.py 

我试图使用Eclipse的PyDev的单元测试设施。我的单元测试必须读取配置文件,如下所示:

(foo,bar,baz) = myModule.readOptimizationConfig("tests/optimization_config_file.cfg") 

然而,这并不会运行,并且因此指定前工作,因为PyDev的进入“测试”目录“测试/”在给readOptimizationConfig路径使得它试图加载

$(PYDEV_PROJECT_ROOT)/tests/tests/optimization_config_file.cfg 

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

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

回答

2

在PyDev中可以这样做,但是每次启动配置都必须这样做,所以这有点无聊。

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

${workspace_loc:awesome-project} 

现在你应该有,你可以同时从运行和调试菜单中使用有效的启动配置。我有时候会将这些配置重新命名为显着的东西,例如“真棒项目测试”。