我一直在尝试使用GLFW构建一个基于OpenGL的图像处理库,并且需要它可以测试.不幸的是,我遇到了这个错误 - GLFW需要从主线程调用它的初始化函数,但Cargo测试是在后台线程上运行的.
Luk*_*odt 17
不,据我所知,现在不容易实现.有一个--test-threads
参数可以传递给测试工具,但除了主线程外,它还设置了线程数.因此--test-threads=1
仍然导致两个线程.
所以你不能真正使用默认的测试工具.幸运的是,你可以禁用它Cargo.toml
.可能最好的解决方案是创建一个新文件夹(例如gltests
)并将所有需要在主线程中运行的测试放在那里.然后我们只需要声明这些测试Cargo.toml
:
[[test]]
name = "gltests"
path = "gltests/main.rs"
harness = false
Run Code Online (Sandbox Code Playgroud)
这意味着货物将尝试编译gltests/main.rs
为可执行文件(期望main()
函数)并执行此可执行文件,无论何时说cargo test
.通过这种方式,您将无法获得通常从货物测试中获得的任何精美输出.你只需要自己做的一切的main.rs
,但至少你可以开始在主线程测试.
归档时间: |
|
查看次数: |
539 次 |
最近记录: |