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

Cra*_*urg 6 rust rust-cargo

是否可以使用该cargo命令来运行库测试(即cargo test --lib)和文档测试,而无需运行任何集成测试(即板条箱顶级tests目录中的测试)?在不运行积分的情况下编译积分测试会获得积分。

这是更大的图景。我的板条箱是Web服务的客户端库,而HTTP服务器不属于板条箱。我已将板条箱整理成:

  1. 依赖于HTTP服务器的库测试,
  2. 文档测试,依赖于HTTP服务器,并且
  3. 集成测试,要求HTTP服务器在本地主机上运行。

因此,有时在构建箱子的计算机上运行HTTP服务器是不可行的,例如Travis CI构建代理。在这些情况下,我希望构建所有测试,但要排除所有集成测试的运行,因为每个集成测试都会失败。

Sim*_*pin 6

查看cargo help test(您可能会看到):

  • 仅运行库中的测试: cargo test --lib
  • 仅运行文档测试: cargo test --doc
  • tests/不运行它们的情况下构建测试:cargo test --no-run --test NAME,但是您需要自己枚举它们。同样,在此处向“货物”中添加一些东西可能很有意义。

同时,集成测试实际上是单独的板条箱,它们将您的库用作依赖项。您可以使用Cargo.toml文件使它们显式显示,[dependencies] foo = {path = "…"}以便cargo test在主条板箱上没有参数的情况下不会运行它们。