Hudson无法浏览相关目录

时间:2010-02-16 04:42:48

标签: python unit-testing continuous-integration hudson

我有一个 Python 项目构建 Hudson 。大多数单元测试都能正常工作,但是任何需要写入文件系统的测试(我有一个使用tarfiles的类)都找不到 tmp 目录设置了中间处理(我的tearDown方法删除相对 tmp 目录下的所有文件)。

这是我的项目结构:

  • SRC
    • 测试
      • fixtures(这里是静态文件)
      • 单位(此处进行单元测试)
    • TMP

以下是一个示例错误:

OSError: [Errno 2] No such file or directory: '../../tmp'

我认为这种情况正在发生,因为Hudson在目录 unit 中没有处理文件,而是在其他工作目录中。

Hudson的工作目录是什么?可以配置吗?相对路径可以起作用吗?

3 个答案:

答案 0 :(得分:2)

Hudson的每个职位都有自己的工作目录,/path/to/hudson/jobs/[job name]/workspace/

对于单个作业,您可以设置“使用自定义工作区”选项(在“高级项目选项”下)以定义工作区的位置。

我想这取决于你的测试是如何运行的,但如果你检查作业的工作区,你应该能够找到Hudson写文件的地方。

答案 1 :(得分:1)

我不知道您是如何初始化工作区的,但通常是通过将项目从版本控制中检入工作区来完成的。如果在您的情况下这是真的,最简单的方法是将您的tmp目录添加到版本控制(例如,如果您的版本控制系统不支持目录,则使用其中的README文件)。然后,tmp目录将被检出到你的工作区,事情应该再次工作。

答案 2 :(得分:0)

我对Hudson一无所知,但这是我要做的,以确保相对路径正常工作:

os.chdir(os.path.dirname(sys.argv[0]))