如何运行库测试和文档测试,但不运行集成测试

时间:2016-01-14 15:35:49

标签: rust rust-cargo

是否可以使用cargo命令运行库测试(即。cargo test --lib)和文档测试,而无需运行任何集成测试(即,测试中)箱子的顶级tests目录)?奖励点用于编译集成测试而不运行它们。

这是更大的图景。我的箱子是Web服务的客户端库,HTTP服务器不是箱子的一部分。我把我的箱子组织成:

  1. 的库测试依赖于HTTP服务器
  2. 文档测试,依赖于HTTP服务器和
  3. 集成测试,需要HTTP服务器在localhost上运行。
  4. 因此,在构建包装箱的机器上运行HTTP服务器有时是不可行的,例如Travis CI构建代理。在这些情况下,我想构建所有测试但排除所有集成测试,因为每次集成测试都会失败。

1 个答案:

答案 0 :(得分:4)

cargo help test(你可能有):

  • 仅在库中运行测试:cargo test --lib
  • 仅运行doc-tests:cargo test --doc
  • tests/中构建测试而不运行它们:cargo test --no-run --test NAME,但您需要自己枚举它们。再次向货物添加东西可能是有意义的。

与此同时,集成测试实际上是使用您的库作为依赖项的独立包。您可以使用Cargo.toml文件和[dependencies] foo = {path = "…"}明确说明这些文件,以便在您的主包上没有参数的cargo test不运行它们。