在独立的maya中打开一个commandPort进行单元测试
Opening a commandPort in standalone maya for unit testing
我正在为通过命令端口向 Autodesk Maya 发送 python 代码的脚本编写单元测试。脚本有效;它将代码发送给执行它的 Maya。然而,出于测试目的,我想编写一个单元测试,在其 setUp() 中打开一个带有 commandPort 的独立(命令行)Maya,我可以向其发送命令,然后在 tearDown() 中再次关闭,这样我就没有了每当我处理脚本时,让真正的 Maya 应用程序保持打开状态。
我该怎么做?
您不能 运行 独立的 commandPort,它依赖于 GUI 循环。但是,您可以 运行 一个使独立侦听套接字的脚本,或者我们可以使用像 zeromq 或 RPyC 这样的远程处理包。 This link 包括一些关于如何设置它的提示,并指向一个 github 要点,其中包含一个简单的 html 基于 RPC 服务器,运行 是独立的。
或者,您可以启动一个完整的 GUI Maya 来使用命令端口进行控制,尽管这会大大降低您的测试速度。
如果您在 Linux 或 Mac,我强烈推荐 dcc automation 项目(不适用于 Windows)。主要是我喜欢它与 Maya 的无缝集成。
不过,我的单元测试设置只是启动整个 GUI maya。我尝试了独立设置,但不值得。虽然 C++ 单元测试套件仍然 运行 带有独立的 Maya,但启动时间只是阻碍。将 Maya GUI 留在后台要快得多,每次需要启动测试时,测试套件都会连接到它。更快的反馈。
如果您有兴趣,我写了一篇关于我的 Maya 自动化测试设置的更深入的文章 - Automated testing and Maya plugin development。
我正在为通过命令端口向 Autodesk Maya 发送 python 代码的脚本编写单元测试。脚本有效;它将代码发送给执行它的 Maya。然而,出于测试目的,我想编写一个单元测试,在其 setUp() 中打开一个带有 commandPort 的独立(命令行)Maya,我可以向其发送命令,然后在 tearDown() 中再次关闭,这样我就没有了每当我处理脚本时,让真正的 Maya 应用程序保持打开状态。
我该怎么做?
您不能 运行 独立的 commandPort,它依赖于 GUI 循环。但是,您可以 运行 一个使独立侦听套接字的脚本,或者我们可以使用像 zeromq 或 RPyC 这样的远程处理包。 This link 包括一些关于如何设置它的提示,并指向一个 github 要点,其中包含一个简单的 html 基于 RPC 服务器,运行 是独立的。
或者,您可以启动一个完整的 GUI Maya 来使用命令端口进行控制,尽管这会大大降低您的测试速度。
如果您在 Linux 或 Mac,我强烈推荐 dcc automation 项目(不适用于 Windows)。主要是我喜欢它与 Maya 的无缝集成。
不过,我的单元测试设置只是启动整个 GUI maya。我尝试了独立设置,但不值得。虽然 C++ 单元测试套件仍然 运行 带有独立的 Maya,但启动时间只是阻碍。将 Maya GUI 留在后台要快得多,每次需要启动测试时,测试套件都会连接到它。更快的反馈。
如果您有兴趣,我写了一篇关于我的 Maya 自动化测试设置的更深入的文章 - Automated testing and Maya plugin development。