如何让Cargo运行本地依赖的测试?

8
我正在处理一个跨多个箱子的项目。顶层箱子(应用程序)需要两个其他箱子(库)作为依赖项。在顶层箱子中运行会构建依赖项并运行顶层箱子的测试,但它不会运行两个其他箱子的测试。是否有一种方法可以配置,以便它将在所有三个箱子中运行测试?
谢谢!

我假设仅仅改变目录并从其中运行 cargo 不是一个足够的解决方案吗? - Shepmaster
@Shepmaster 我想在CI上运行构建,所以我宁愿能够相对于顶级源目录执行所有命令。不过,cd是我的备选计划。 - Eliza Weisman
1个回答

9
你可以通过传递-p参数来让 Cargo 运行依赖的测试。
因此,如果你的 crate 名称为 sublib,你可以使用以下命令运行它的测试:
cargo test -p sublib

来自 cargo test --help:

-p SPEC, --package SPEC 要测试的包

如果指定了--package参数,则SPEC是一个包标识符,表示应该测试哪个包。 如果没有指定,则测试当前包。有关SPEC及其格式的更多信息,请参见cargo help pkgid命令。


2
只是想补充一下,这可以被多次使用。例如,如果你想测试当前的板条箱和捆绑的板条箱,你可以执行 cargo test -p bundled1 -p bundled2 -p main_crate - andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接