目前来看, hello
程序只存在于target/debug
。 但是,如果我把它拷贝到环境变量PATH
的任意一个目录里的话, 我就能成功运行测试了。不过,我并不想这么干, 我只想在当前的crate
里进行测试。可以使用assert_cmd
这个crate
, 它可以在当前的crate
目录下找到对应的程序。
首先要做的就是把它加入到Cargo.toml
的development dependency 里。这将告诉Cargo
,要加入的这个crate
只在测试和性能测试(benchmarking)时使用。
Cargo.toml
1 | [package] |
现在我就可以新建一个Command
, 它会去Cargo
的二进制目录里找。 下面的测试先不验证程序数据是否正确,先看看能不能成功。更新一下代码吧:
1 | use assert_cmd::Command; // 用来导入assert_cmd::Command |
有关于Result,它的内容很多, 现在暂时只需要知道它里面的值可能是成功:Ok,也可能是失败:Err。