微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

名称中带有空格的单元测试文件

如何解决名称中带有空格的单元测试文件

我有一个 Python 项目,其中主文件名称中有空格。我知道不鼓励这样做,但在这种情况下,我认为这是必要的。该文件正在使用 py2app 编译成独立的可执行文件——它在构建可执行文件(应用程序名称菜单引用等)时使用文件名作为应用程序名称。这工作正常,因为基本文件没有在项目中的任何地方导入,并且 py2app 优雅地处理空间。我们将文件命名为 Application Name.py

然而,为了对 Application Name.py 运行单元测试,我必须消除空格以便将文件导入 unittest。我无法使用 importlib__import__,因为文件不是作为包构建的,所以这两种方法都失败了。我的工作流程是将文件名重构为 application_name.py,运行单元测试,然后将名称重构为 Application Name.py,然后将其编译为 Application Name.app

所以选项似乎是:

  1. 继续做我正在做的事情(可行,但并不理想),
  2. 创建一个名为 Application Name.py 的包装器,用于导入 application_name.py,其中不需要对包装器进行单元测试(看起来很傻),
  3. Application Name 转换为一个包,以便我可以使用 importlib(似乎有点矫枉过正),或者
  4. 完全不同的东西。

是否有某种方法可以在单元测试中优雅地处理我没有看到的带空格的文件名,或者我应该把它吸进去?

解决方法

似乎选项 2 可能效果最好。 选项 1 和 2 是您最好的选择(是的,3 有点矫枉过正),尽管 2 看起来有些过分,但它确实将您的 Python 逻辑与您的 py2app 需求隔离开来——现在 Application Name.py 是一个“py2app 包装文件”,而 { {1}} 包含您的实际逻辑。

这比选项 1 效果更好,因为通常首选职责分离。如果您对应用程序名称提出其他要求,您可能只想处理“py2app 包装文件”,而不要更改与实际逻辑相关的任何内容。

您当前的工作流程也有效,但是当您想要运行单元测试时,这确实意味着需要更多的手动重命名 - 如果您想要自动化单元测试过程怎么办?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。