无法解析清单 - 未指定目标

wog*_*and 21 rust rust-cargo

我是Rust的新手,并试图用Cargo建立一个测试项目.我Cargo.toml看起来像:

[package]
name = "rust-play"
version = "0.0.1"
authors = [ "Bradley Wogsland <omitted>" ]
Run Code Online (Sandbox Code Playgroud)

(但实际的TOML文件不会省略我的电子邮件).当我cargo build收到以下错误时:

错误:无法解析清单 /Users/wogsland/Projects/rust-play/Cargo.toml

引起:清单中没有指定目标src/lib.rs,src/main.rs,[lib]部分或[[bin]]部分必须存在

我的main功能在一个src/test.rs文件中.我需要在TOML文件中指定吗?如果是这样,怎么样?我尝试添加

target = "src/test.rs"
Run Code Online (Sandbox Code Playgroud)

无济于事.

She*_*ter 29

正如错误所说:

或者src/lib.rs,src/main.rs,一个[lib]部分,或[[bin]]区段必须存在

所以直接的答案是添加一个[[bin]]部分:

[[bin]]
name = "test"
path = "src/test.rs"
Run Code Online (Sandbox Code Playgroud)

但是,将文件放在预期位置更为常见:src/main.rs.src/bin/test.rs如果您计划拥有多个二进制文件,也可以将其放入.

如果它实际上用于测试您的代码,那么单元测试将与他们正在测试的代码和集成测试进入相同的文件tests/foo.rs.


Den*_*din 6

替代问题和解决方案:如果您已将Cargo.toml文件复制到crate的父文件夹,您也可能会遇到此错误。