0

虽然二进制文件与 一起使用bazel run,但当我使用 运行测试时bazel test,例如:

$ bazel test //systems/sensors:rgbd_camera_test

我遇到了来自 VTK / OpenGL 的一系列错误:

ERROR: In /vtk/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx, line 820
vtkXOpenGLRenderWindow (0x55880715b760): failed to create offscreen window

ERROR: In /vtk/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, line 816
vtkXOpenGLRenderWindow (0x55880715b760): GLEW could not be initialized.

ERROR: In /vtk/Rendering/OpenGL2/vtkShaderProgram.cxx, line 453
vtkShaderProgram (0x5588071d5aa0): Shader object was not initialized, cannot attach it.

ERROR: In /vtk/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, line 1858
vtkXOpenGLRenderWindow (0x55880715b760): Hardware does not support the number of textures defined.

请问为什么会这样?

(注意:这篇文章是一种从http://drake.mit.edu/faq.html迁移到 StackOverflow 以解决基于用户的问题的方法。)

4

1 回答 1

0

目前最好的解决方法是首先将测试标记为localBUILD.bazel文件中,使用local = 1tags = [.., "local"]。这样做将使特定目标在没有沙盒的情况下运行,使其具有类似于bazel run.

例如,在systems/sensors/BUILD.bazel

drake_cc_googletest(
    name = "rgbd_camera_test",
    # ...
    local = 1,
    # ...
)

如果这不起作用,请尝试在不使用沙盒的情况下在 Bazel 中运行测试:

$ bazel test --spawn_strategy=standalone //systems/sensors:rgbd_camera_test

请注意,您可以添加--spawn_strategy=standalone到您的~/.bazelrc.,但请注意,这意味着您的开发测试环境可能与其他开发人员的测试环境有更大的偏差。

于 2018-03-19T02:42:15.340 回答