Hudson 无法导航相对目录

发布于 2024-08-21 05:32:42 字数 581 浏览 5 评论 0原文

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

这是我的项目结构:

  • src
    • 测试
      • 装置(此处为静态文件)
      • 单元(此处为单元测试)
    • tmp

这是一个示例错误:

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

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

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

I have a Python project building with Hudson. Most unit tests work correctly, but any tests that require writing to the file system (I have a class that uses tarfiles, for example) can't find the tmp directory I have set up for intermediate processing (my tearDown methods remove any files under the relative tmp directory).

Here is my project structure:

  • src
    • tests
      • fixtures (static files here)
      • unit (unit tests here)
    • tmp

Here is an example error:

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

I assume this is happening because Hudson is not processing the files while in the directory unit, but rather some other working directory.

What is Hudson's working directory? Can it be configured? Can relative paths work at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

落花随流水 2024-08-28 05:32:42

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

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

我想这取决于你的测试是如何运行的,但是如果你检查作业的工作空间,你应该能够找到 Hudson 将文件写入的位置。

Each job in Hudson has it's own working directory, at /path/to/hudson/jobs/[job name]/workspace/

For individual jobs, you can set the "Use custom workspace" option (under "Advanced Project Options") to define where the workspace will be.

I guess it would depend on how your tests are being run, but if you inspect the job's workspace you should be able to find where Hudson is writing the files to.

拥醉 2024-08-28 05:32:42

我不知道您如何初始化工作区,但通常是通过将项目从版本控制中签入工作区来完成的。如果您的情况确实如此,最简单的方法是将 tmp 目录添加到版本控制中(例如,如果您的版本控制系统不支持目录,则在其中包含 README 文件)。然后,tmp 目录将被检出到您的工作区中,并且一切应该再次正常工作。

I don't know how you're initializing your workspace, but typically it's done by checking your project out of version control into the workspace. If this is true in your case, the easiest thing to do is to add your tmp directory to version control (say, with a README file in it, if your version control system doesn't support directories). Then, the tmp directory will get checked out into your workspace and things should work again.

很酷又爱笑 2024-08-28 05:32:42

我对哈德森一无所知,但这就是我所做的,以确保相对路径正常工作:

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

I don't know anyhting about Hudson, but this is what I do to ensure, that relative path are working right:

os.chdir(os.path.dirname(sys.argv[0]))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文