Skip to main content

test

Run the unit-test suite. Use to run, filter, or disable tests.

来源信息

仓库
SRombauts/pong-sdl3-cpp
最近来源活动
2026年5月13日 17:44
检测到的 SKILL.md 语言
英语
星标
0
Forks
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
test
description
Run the unit-test suite. Use to run, filter, or disable tests.
# Test Tests are built by default alongside the main executable, registered with CTest via `doctest_discover_tests()`. Build the project first (see the `build` skill); the test scripts deliberately do not trigger a build. ## Run all tests ```powershell scripts\test.ps1 ``` ```bash ./scripts/test.sh ``` Both default to `Debug` (`-Config Release` / `--config Release` to override). Raw fallback: ```bash ctest --test-dir build --output-on-failure ``` ## Run an individual test target or case Filter via CTest (regex over registered test names): ```bash ctest --test-dir build -R smoke --output-on-failure ``` Or invoke the test executable directly with doctest filters: - Linux/macOS: `build/pong-sdl3-cpp-tests -tc=smoke` - Windows (Visual Studio generator): `build\tests\Debug\pong-sdl3-cpp-tests.exe -tc=smoke` ## Disable testing entirely Pass `-DBUILD_TESTING=OFF` at configure time. CMake's standard option (set by `include(CTest)`); skips both the test target and the `FetchContent` download of `doctest`: ```bash cmake -S . -B build -DBUILD_TESTING=OFF ``` In this configuration `scripts/test.{ps1,sh}` will exit non-zero with "No tests were found": the wrappers pass `--no-tests=error` to CTest so a build without a test target fails loudly instead of silently reporting "Tests passed" on zero discovered tests. To opt out (e.g. a sanity-check run on a `BUILD_TESTING=OFF` build), forward `--no-tests=ignore`: ```powershell scripts\test.ps1 -ExtraArgs '--no-tests=ignore' ``` ```bash ./scripts/test.sh -- --no-tests=ignore ``` ## Rules - Always build before running tests; the scripts fail fast if `build/` does not exist. - Add new tests under `tests/<TypeName>Test.cpp` (CamelCase, mirroring the type or area being tested) and let `doctest_discover_tests()` pick them up; do not edit CTest registration by hand. - A non-zero exit from CTest means a real failure — surface it rather than re-running blindly. "No tests were found" is one such failure: it usually means the build was configured with `BUILD_TESTING=OFF`, or the test target was never built into the current `build/` (partial / stale state). Re-run `scripts/build.{ps1,sh}` rather than retrying `ctest`.
在 GitHub 查看