【问题标题】:Opening a commandPort in standalone maya for unit testing在独立 Maya 中打开 commandPort 进行单元测试
【发布时间】:2015-03-31 14:41:18
【问题描述】:

我正在为通过 commandPort 将 python 代码发送到 Autodesk Maya 的脚本编写单元测试。脚本有效;它将代码很好地发送到执行它的 Maya。但是,出于测试目的,我想编写一个单元测试,在它的 setUp() 中打开一个带有 commandPort 的独立(命令行)Maya,我可以向它发送命令,然后在 tearDown() 中再次关闭,这样我就没有以便在我处理脚本时保持真正的 Maya 应用程序打开。

我该怎么做?

【问题讨论】:

  • “通过命令端口向 Maya 发送 python 代码”是什么意思?你能说明你现在在做什么吗?也许一些代码和一些上下文?

标签: python maya


【解决方案1】:

您不能独立运行 commandPort,它依赖于 GUI 循环。但是,您可以运行一个脚本,使独立侦听套接字,或者我们使用 zeromq 或 RPyC 之类的远程处理包。 This link 包括一些关于如何设置它的提示,并指向一个 github 要点,其中包含一个简单的基于 html 的 RPC 服务器,该服务器以独立运行的方式运行。

或者,您可以启动一个完整的 GUI Maya 来使用命令端口进行控制,尽管这会大大减慢您的测试速度。

【讨论】:

  • 我最终做了这样的事情;使用 wsgi simple_server 的参考实现来处理包含代码的查询。它适用于我想到的测试目的。我会将您的答案标记为正确,因为它匹配得很好并且使用了相同的参考。
【解决方案2】:

如果您使用的是 Linux 或 Mac,我强烈推荐 dcc automation 项目(不适用于 Windows)。主要是我喜欢它与 Maya 的无缝集成。

不过,我的单元测试设置只是启动整个 GUI Maya。我尝试了独立设置,但不值得。虽然 C++ 单元测试套件仍然可以使用独立的 Maya 运行,但启动时间只是阻碍。将 Maya GUI 留在后台要快得多,并且每次需要启动测试时测试套件都会连接到它。更快的反馈。

如果您有兴趣,我写了一篇关于 Maya 自动化测试设置的更深入的文章 - Automated testing and Maya plugin development

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 2021-10-12
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多