如何 运行 库测试和文档测试而不是集成测试
How to run library tests and doc tests but not integration tests
是否可以使用 cargo
命令来 运行 库测试(即,cargo test --lib
)和文档测试 而无需 运行进行任何集成测试(即在 crate 的顶级 tests
目录中的测试)?在没有 运行 编译集成测试的情况下获得奖励积分。
这是大局。我的箱子是 Web 服务的客户端库,而 HTTP 服务器不是箱子的一部分。我已经将我的箱子组织成:
- 库测试,不取决于 HTTP 服务器,
- 文档测试,不 取决于 HTTP 服务器,
- 集成测试,要求 HTTP 服务器 运行在本地主机上。
因此,有时在构建箱子的机器上安装 HTTP 服务器 运行 是不可行的——例如,Travis CI 构建代理。在这些情况下,我想构建所有测试,但从 运行ning 中排除所有集成测试,因为每个集成测试都会失败。
正在查看 cargo help test
(您可能有):
- 运行 仅在库中测试:
cargo test --lib
- 运行 仅 doc-tests:
cargo test --doc
- 在
tests/
中构建测试而不 运行 对它们进行测试:cargo test --no-run --test NAME
,但您需要自己枚举它们。同样,在这里向 Cargo 添加一些东西可能是有意义的。
与此同时,集成测试实际上是将您的库用作依赖项的独立箱子。您可以使用 Cargo.toml
文件和 [dependencies] foo = {path = "…"}
使它们显式化,这样 cargo test
在您的 main crate 上没有参数就不会 运行 它们。
是否可以使用 cargo
命令来 运行 库测试(即,cargo test --lib
)和文档测试 而无需 运行进行任何集成测试(即在 crate 的顶级 tests
目录中的测试)?在没有 运行 编译集成测试的情况下获得奖励积分。
这是大局。我的箱子是 Web 服务的客户端库,而 HTTP 服务器不是箱子的一部分。我已经将我的箱子组织成:
- 库测试,不取决于 HTTP 服务器,
- 文档测试,不 取决于 HTTP 服务器,
- 集成测试,要求 HTTP 服务器 运行在本地主机上。
因此,有时在构建箱子的机器上安装 HTTP 服务器 运行 是不可行的——例如,Travis CI 构建代理。在这些情况下,我想构建所有测试,但从 运行ning 中排除所有集成测试,因为每个集成测试都会失败。
正在查看 cargo help test
(您可能有):
- 运行 仅在库中测试:
cargo test --lib
- 运行 仅 doc-tests:
cargo test --doc
- 在
tests/
中构建测试而不 运行 对它们进行测试:cargo test --no-run --test NAME
,但您需要自己枚举它们。同样,在这里向 Cargo 添加一些东西可能是有意义的。
与此同时,集成测试实际上是将您的库用作依赖项的独立箱子。您可以使用 Cargo.toml
文件和 [dependencies] foo = {path = "…"}
使它们显式化,这样 cargo test
在您的 main crate 上没有参数就不会 运行 它们。