unit-testing - Rust 测试甚至无法运行
问题描述
我正在编写一个项目来学习如何使用 Rust,我将我的项目称为future-finance-labs。在编写了一些基本功能并验证可以构建应用程序之后,我想包括一些测试,位于aggregates/mod.rs
. [根据文档,测试与实际代码位于同一文件中。] 尽管尽我所能遵循文档,但我无法运行测试。我尝试使用 PowerShell 和 Bash 构建项目。[它也无法在 Fedora Linux 上运行]
这是我在 Bash 上的输出:
~/future-finance-labs$ cargo test -- src/formatters/mod.rs
Finished test [unoptimized + debuginfo] target(s) in 5.98s
Running target/debug/deps/future_finance_labs-16ed066e1ea3b9a1
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
使用 PowerShell 我得到相同的输出,但出现如下错误:
error: failed to remove C:\Users\jhale\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\jhale\future-finance-labs\target\debug\build\mime_guess-890328c8763afc22\build_script_build-890328c8763afc22.build_script_build.c22di3i8-cgu.0.rcgu.o: The system cannot find the path specified. (os error 3)
在对编写一些第一次尝试通过的测试的前景感到兴奋之后,我很快意识到所有的绿色都是指示性的。相反,甚至无法运行测试。我只想运行单元测试。cargo test
在没有单独的文件的情况下单独运行也会失败。为什么我不能用我当前的设置在这个项目中运行任何测试?
解决方案
它找不到您的测试,因为 rust 编译器不知道它。您需要添加mod aggregates
到主目录。
mod aggregates;
fn main() {
println!("Hello, world!");
}
完成此操作后,您会发现aggregates/mod.rs
由于多种原因无法编译。
正如 Mihir 试图说的,您需要使用test的名称,而不是文件的名称来运行特定的测试:
cargo test min_works
cargo test aggregates
也可以看看:
推荐阅读
- python-2.7 - Python Join 未按预期工作
- javascript - 在评估方法之外处理来自 puppeteer 页面上下文的事件
- java - JavaFX - 为什么按钮有时会缩小?
- javascript - 如何使用数据列表返回值在 javascript 对象中的位置
- java - 双向 OneToOne 映射的 N+1 休眠问题
- terraform - 如何指定 openstack_blockstorage_volume_attach_v2.host_name?
- c++ - C++ 第三方库 typedef 与标准 stdin.h 冲突
- css - 通过 css 的文本装饰线在我的“已完成”类的 Safari 上不起作用
- hortonworks-sandbox - HDP 2.6.5 Sandbox 无法从本地访问
- codenameone - 模拟器挂起并且未连接到互联网时不显示任何错误