You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.5 KiB

3 months ago
  1. # GoogleTest
  2. ### Announcements
  3. #### Live at Head
  4. GoogleTest now follows the
  5. [Abseil Live at Head philosophy](https://abseil.io/about/philosophy#upgrade-support).
  6. We recommend using the latest commit in the `master` branch in your projects.
  7. #### Documentation Updates
  8. Our documentation is now live on GitHub Pages at
  9. https://google.github.io/googletest/. We recommend browsing the documentation on
  10. GitHub Pages rather than directly in the repository.
  11. #### Release 1.10.x
  12. [Release 1.10.x](https://github.com/google/googletest/releases/tag/release-1.10.0)
  13. is now available.
  14. #### Coming Soon
  15. * We are planning to take a dependency on
  16. [Abseil](https://github.com/abseil/abseil-cpp).
  17. * More documentation improvements are planned.
  18. ## Welcome to **GoogleTest**, Google's C++ test framework!
  19. This repository is a merger of the formerly separate GoogleTest and GoogleMock
  20. projects. These were so closely related that it makes sense to maintain and
  21. release them together.
  22. ### Getting Started
  23. See the [GoogleTest User's Guide](https://google.github.io/googletest/) for
  24. documentation. We recommend starting with the
  25. [GoogleTest Primer](https://google.github.io/googletest/primer.html).
  26. More information about building GoogleTest can be found at
  27. [googletest/README.md](googletest/README.md).
  28. ## Features
  29. * An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework.
  30. * Test discovery.
  31. * A rich set of assertions.
  32. * User-defined assertions.
  33. * Death tests.
  34. * Fatal and non-fatal failures.
  35. * Value-parameterized tests.
  36. * Type-parameterized tests.
  37. * Various options for running the tests.
  38. * XML test report generation.
  39. ## Supported Platforms
  40. GoogleTest requires a codebase and compiler compliant with the C++11 standard or
  41. newer.
  42. The GoogleTest code is officially supported on the following platforms.
  43. Operating systems or tools not listed below are community-supported. For
  44. community-supported platforms, patches that do not complicate the code may be
  45. considered.
  46. If you notice any problems on your platform, please file an issue on the
  47. [GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues).
  48. Pull requests containing fixes are welcome!
  49. ### Operating Systems
  50. * Linux
  51. * macOS
  52. * Windows
  53. ### Compilers
  54. * gcc 5.0+
  55. * clang 5.0+
  56. * MSVC 2015+
  57. **macOS users:** Xcode 9.3+ provides clang 5.0+.
  58. ### Build Systems
  59. * [Bazel](https://bazel.build/)
  60. * [CMake](https://cmake.org/)
  61. **Note:** Bazel is the build system used by the team internally and in tests.
  62. CMake is supported on a best-effort basis and by the community.
  63. ## Who Is Using GoogleTest?
  64. In addition to many internal projects at Google, GoogleTest is also used by the
  65. following notable projects:
  66. * The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser
  67. and Chrome OS).
  68. * The [LLVM](http://llvm.org/) compiler.
  69. * [Protocol Buffers](https://github.com/google/protobuf), Google's data
  70. interchange format.
  71. * The [OpenCV](http://opencv.org/) computer vision library.
  72. ## Related Open Source Projects
  73. [GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based
  74. automated test-runner and Graphical User Interface with powerful features for
  75. Windows and Linux platforms.
  76. [GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that
  77. runs your test binary, allows you to track its progress via a progress bar, and
  78. displays a list of test failures. Clicking on one shows failure text. Google
  79. Test UI is written in C#.
  80. [GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
  81. listener for GoogleTest that implements the
  82. [TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
  83. result output. If your test runner understands TAP, you may find it useful.
  84. [gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that
  85. runs tests from your binary in parallel to provide significant speed-up.
  86. [GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter)
  87. is a VS Code extension allowing to view GoogleTest in a tree view, and run/debug
  88. your tests.
  89. [C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS
  90. Code extension allowing to view GoogleTest in a tree view, and run/debug your
  91. tests.
  92. [Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser
  93. that generates stub code for GoogleTest.
  94. ## Contributing Changes
  95. Please read
  96. [`CONTRIBUTING.md`](https://github.com/google/googletest/blob/master/CONTRIBUTING.md)
  97. for details on how to contribute to this project.
  98. Happy testing!