为什么不打印!在 Rust 单元测试中工作?

2023-12-12

我已经实现了以下方法和单元测试:

use std::fs::File;
use std::path::Path;
use std::io::prelude::*;

fn read_file(path: &Path) {
    let mut file = File::open(path).unwrap();
    let mut contents = String::new();
    file.read_to_string(&mut contents).unwrap();
    println!("{contents}");
}

#[test]
fn test_read_file() {
    let path = &Path::new("/etc/hosts");
    println!("{path:?}");
    read_file(path);
}

我这样运行单元测试:

rustc --test app.rs; ./app

我也可以运行这个

cargo test

我收到一条消息,说测试通过了,但是println!永远不会显示在屏幕上。为什么不?


发生这种情况是因为 Rust 测试程序隐藏了成功测试的标准输出,以便测试输出整洁。您可以通过传递来禁用此行为--nocapture测试二进制文件的选项或cargo test(但是,在这种情况下after --- 见下文):

#[test]
fn test() {
    println!("Hidden output")
}

调用测试:

% rustc --test main.rs; ./main

running 1 test
test test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

% ./main --nocapture

running 1 test
Hidden output
test test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

% cargo test -- --nocapture

running 1 test
Hidden output
test test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

但是,如果测试失败,无论此选项是否存在,都将打印其标准输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不打印!在 Rust 单元测试中工作? 的相关文章

随机推荐

  • 斯坦福大学对 Python NLTK 的通用依赖关系

    有什么方法可以使用 python 或 nltk 获取通用依赖项吗 我只能生成解析树 Example 输入句子 My dog also likes eating sausage Output Universal dependencies nm
  • 如何在ios7中使用ALAssetLibrary获取所有照片?

    我无法像苹果 iPhone 在 ios8 中那样即时获取照片 我已经使用 PHAsset 和 Photos framework 实现了 ios8 现在 当我在 ios7 设备中运行相同的代码时 它不会返回任何内容 所以 我使用 ALAsse
  • 无法连接 EA 中活动图中的活动

    您好 我目前遇到 EA 中活动图的问题 我正在尝试描述一个代码 当我添加启动控制节点和活动节点时 我无法通过控制流连接它们 当我尝试将两个活动与控制流连接在一起时 会发生同样的问题 我收到以下错误 请求的连接不符合 UML 有人可以就此提供
  • 如何使用 ExoPlayer IMA 扩展在特定点展示广告?

    我在用ExoPlayer 2 7 3带有 IMA 扩展名 我必须以一定的时间间隔展示广告 我已经成功地整合了AdsLoader and AdsMediaSource 我正在接收并展示广告 但广告只出现在电影的开头 如何让广告在我想要的时间点
  • 使用 openxml 创建 powerpoint 的示例

    在哪里可以找到使用 OpenXML 在 ppt 文件中插入文本和图像的 Hello World 我无法生成简单的模板 在开发 PowerPoint 模板之前 请阅读此内容中的presentationML 结构PDF 请参阅以下链接以使用 O
  • 如何在 Tkinter 中将点击事件绑定到 Canvas? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我只是想知道是否有任何可能的方法使用 Tkinter 将单击事件绑定到画布 我希望能够单击画布上的任意位置并将对象移动到其中 我能够做出动作 但我还没有找到将点击绑定到画布的方法
  • 在数据框中使用向量的打印方法

    考虑以下向量x x lt c 6e 06 75000400 743450000 340000 4300000 我想打印x以百万计 所以我编写了一个 print 方法并将一个类分配给x print million lt function x
  • Play 框架 2 (Java) 表单数据绑定与嵌套允许字段

    考虑以下模型 public class Contact Required public String name Valid public List
  • 将 POST curl 从命令行转换为 php 时遇到问题

    我在将curl 命令转换为php 时遇到问题 这部分效果很好 CURL 命令将条目添加到我的 Parse com 数据库中 curl X POST H X Parse Application Id my id H X Parse REST
  • iOS AUSampler audiounit - EXS 音频文件的文件路径问题?

    遵循苹果文档here我已经能够通过重新创建成功将 GarageBand EXS 采样器乐器加载到我的 iOS 应用程序中的 AUSampler 中 例如我的应用程序目录中的以下路径 Sampler Files Funk Horn Secti
  • 如何使用 MVVM 在 RibbonComboBox 上设置 SelectedItem?

    我该如何设置SelectedItem on a RibbonComboBox using MVVM图案 View
  • Playframework [1.2.7] 依赖项失败

    我们遇到了游戏框架依赖管理的问题 几天前该问题运行良好 我们尚未对依赖文件进行任何配置更改或更改 但在我们的构建服务器和本地 均位于不同的网络和 ISP 上 上均出现以下错误 problems summary WARNINGS module
  • Django 从 ImageField 下载图像

    我正在使用 Django 1 7 和 Python 3 4 我有一个这样的模型 class ImageModel models Model image models ImageField verbose name image upload
  • 两个数据库之间的Mysql数据库同步

    我们正在各个商店运行带有 MySql 后端的 Java PoS 销售点 应用程序 我想让商店中的数据库与主机服务器上的数据库保持同步 当商店发生一些变化时 它们应该在主机服务器上更新 我该如何实现这一目标 创建复制并不难 这里有一些很好的教
  • 在C中查询最大套接字发送缓冲区大小?

    我知道我可以 cat proc sys net core wmem max 来获取套接字上 SO SNDBUF 的最大大小 但是有没有一种简单的方法可以在 C 中查询该值 而无需执行打开文件的笨拙步骤 读取并转换为整数 要获取 net ip
  • 如何在 R 中查看所有 xml_nodeset 类对象(rvest::html_nodes 的输出)?

    如果我们创建一个类的对象xml nodes using rvest s html nodes 我们如何在 R 控制台中查看所有输出 Example library rvest library dplyr Generate some samp
  • PHP MySQL 多条件搜索

    我在网站中有一个搜索表单 希望有几个由用户输入的搜索词来执行数据库搜索 词如下 Keywords 物业出售 出售 出租 房产类型 公寓 排屋 State 最低价格 最高价格 这是使用上述术语的输入执行搜索的脚本 public functio
  • Supabase动态RPC函数

    我希望创建一个 RPC 来获取列的不同值 但我将在多个表中执行此操作 并且我不想为每个列和每个表一遍又一遍地编写此函数 我有以下 SQL 语句可以满足我的需要 SELECT owner FROM customers GROUP BY own
  • 多种语言的问题

    我希望我的应用程序能够提供多种语言版本 比如说两种 一种是默认英语 另一种是默认英语 这两个选项都可以在我的主页上找到 并且必须显示一个链接 使用户能够选择他选择的语言 我正在阅读Django官方文档为了这 所以任何人都可以让我知道如何做到
  • 为什么不打印!在 Rust 单元测试中工作?

    我已经实现了以下方法和单元测试 use std fs File use std path Path use std io prelude fn read file path Path let mut file File open path