编译Rust二进制文件,仅用于机箱的集成测试

34gzjxbg  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(163)

我正在创建一个独立的帮助器实用程序,供我的一些集成测试使用。我可以用脚本语言(如Bash或Python)编写它,但是如果它是Rust二进制文件会很方便,因为项目的其余部分都是用它来编写的,这样可以避免使项目的测试依赖性复杂化。但是我不确定是否有一个好的方法来创建一个“只用于测试”的二进制文件。我知道我可以把一些东西放到bin/中,但是它真的不应该在测试之外使用,这样看起来就像是错误的位置(更不用说即使不需要它也会被编译)。
有没有办法定义一个二进制文件,它只应该被编译用于测试?有点像dev-dependencies配置,但用于二进制文件而不是依赖项。我试着看看tests/bin/目录是否可以工作,例如,但它似乎没有被选中时,运行cargo test

brccelvz

brccelvz1#

我编写crate Rust Test Binary就是为了做这件事:
如果你有涉及子流程管理、进程间通信或平台工具的集成测试,你可能需要编写一些自己的模拟二进制文件来进行测试。如果你已经在使用Cargo进行构建和测试,那么能够在Rust中编写这些测试二进制文件,靠近你正在测试的机箱,作为货物项目本身就很好了。
这个crate提供了一个简单的接口,用于调用Cargo来构建组织在crate下的一个单独目录中的测试二进制文件。
请注意,您可以在examples中使用二进制文件,这样会更简单,但我的板条箱是为您需要不同的依赖项、特性,或者通常希望在“模拟”程序编译和集成测试之间有一些隔离的情况而设计的。

相关问题