强制googletest在单线程中运行的命令行选项

use*_*717 6 multithreading googletest

我有一套由googletest管理的单元测试.默认情况下,这些测试在多个线程中运行,即使我使用--gtest_filter=foo.test它只运行单个测试.这引起了我正试图敲诈的错误原因的模糊性.

如何在googletest中关闭多线程测试?

Mik*_*han 7

单/多线程没有命令行开关.libgtest构建单线程或多线程.

要使其成为单线程,请构建gtest ./configure --with-pthreads=no,然后在不使用的情况下链接您的单元测试应用程序-pthread

如果你有时只需要单线程,那么建立一个no-pthreads构建libgtest,将其称为其他东西,并在需要时链接它.


dav*_*idA 5

如果您使用 cmake 构建 googletest,您可以使用 cmake 选项gtest_disable_pthreads来控制对线程的支持。例如:

$ mkdir build && cd build
$ cmake .. -Dgtest_disable_pthreads=ON
Run Code Online (Sandbox Code Playgroud)

输出的结果应该没有显示:

-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
Run Code Online (Sandbox Code Playgroud)

然后你就可以make像往常一样跑了。