如何在Rust中的同一lib.rs文件中的测试中引用常量?
我在lib.rs中定义了一个常量,如下所示:如何在Rust中的同一lib.rs文件中的测试中引用常量?,rust,Rust,我在lib.rs中定义了一个常量,如下所示: #[cfg(test)] mod tests { use {OFF, YELLOW, RED, GREEN}; #[test] fn some_test() {//...} const GREEN:LedColor=LedColor(0,255,0) 在同一个lib.rs文件中,我还进行了尝试使用绿色的测试,如下所示: #[cfg(test)] mod tests { use {OFF, YELLOW, RED, G
#[cfg(test)]
mod tests {
use {OFF, YELLOW, RED, GREEN};
#[test]
fn some_test() {//...}
const GREEN:LedColor=LedColor(0,255,0)代码>
在同一个lib.rs文件中,我还进行了尝试使用绿色的测试,如下所示:
#[cfg(test)]
mod tests {
use {OFF, YELLOW, RED, GREEN};
#[test]
fn some_test() {//...}
但运行货物测试会出现如下错误:
小路上没有绿色
如何在同一文件中的测试中引用常量绿色?您需要使用来引用父模块
模块tests
实际上是cratet::tests
,这意味着GREEN
您在那里编写它的方式实际上是cratet::tests::GREEN
。这不存在,因为在父模块中定义了绿色
。因此,您需要:
#[cfg(测试)]
模试验{
使用super:{OFF,YELLOW,RED,GREEN};
}
这些被认为是私有的,因此正常的使用板条箱:{names}
将不起作用
您可以使用use super::*
(*
使它们都可用,作为一种简写)从父模块引入私有名称。(尽管从我所能找到的资料来看,这并没有记录在案)
如果您不介意将它们公开,您可以添加pub
,然后使用use claret::{names}
,请下次包含一个真实的