Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在集成测试中导入模块

无法在集成测试中导入模块
EN

Stack Overflow用户
提问于 2017-10-21 12:16:51
回答 1查看 9.2K关注 0票数 24

我正在尝试将锈蚀中的一个示例项目配置为工作项目。

我的结构是:

  • src/potter.rs
  • tests/tests.rs

还有我的Cargo.toml

代码语言:javascript
运行
AI代码解释
复制
[package]
name = "potter"
version = "0.1.0"
authors = ["my name"]
[dependencies]

我的potter.rs包含:

代码语言:javascript
运行
AI代码解释
复制
pub mod potter {
    pub struct Potter {

    }

    impl Potter  {
        pub fn new() -> Potter {
         return Potter {};
        }
    }

}

我的tests.rs包含:

代码语言:javascript
运行
AI代码解释
复制
use potter::Potter;

    #[test]
    fn it_works() {

        let pot = potter::Potter::new();
        assert_eq!(2 + 2, 4);
    }

但我收到了这个错误:

代码语言:javascript
运行
AI代码解释
复制
error[E0432]: unresolved import `potter`
 --> tests/tests.rs:1:5
  |
1 | use potter::Potter;
  |     ^^^^^^ Maybe a missing `extern crate potter;`?

error[E0433]: failed to resolve. Use of undeclared type or module `potter`
 --> tests/tests.rs:6:19
  |
6 |         let pot = potter::Potter::new();
  |                   ^^^^^^ Use of undeclared type or module `potter`

warning: unused import: `potter::Potter`
 --> tests/tests.rs:1:5
  |
1 | use potter::Potter;
  |     ^^^^^^^^^^^^^^
  |
  = note: #[warn(unused_imports)] on by default

如果我加上extern crate potter;,它不会修复任何.

代码语言:javascript
运行
AI代码解释
复制
error[E0463]: can't find crate for `potter`
 --> tests/tests.rs:1:1
  |
1 | extern crate potter;
  | ^^^^^^^^^^^^^^^^^^^^ can't find crate
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-21 12:52:24

回去,关于包、板条箱、模块和文件系统

共同痛点:

  • 每一种编程语言都有自己的处理文件的方法,- you不能仅仅假设您已经使用过任何其他语言,所以您将神奇地获得Rust对它的重视。这就是为什么你应该回去,重读关于它的书中的章节。
  • 每个文件定义一个模块。您的lib.rs定义了与机箱同名的模块;mod.rs定义了与其所在目录同名的模块;其他每个文件都定义了文件名的模块。
  • 库机箱的根必须是lib.rs;二进制板条箱可以使用main.rs
  • 不,您真的不应该尝试做非惯用的文件系统组织。有很多技巧可以做任何你想做的事情;这些都是糟糕的想法,除非你已经是一个高级的锈菌用户。
  • 惯用的Rust通常不会像许多其他语言那样放置“每个文件一种类型”。是的,真的。您可以在一个文件中拥有多个东西。
  • 单元测试通常与它所测试的代码位于同一个文件中。有时,它们会被拆分成一个包含子模块的文件,但这并不常见。
  • 集成测试、示例、基准测试都必须像任何其他机箱用户一样导入机箱,并且只能使用公共API。

要解决您的问题:

  1. 将您的src/potter.rs移动到src/lib.rs
  2. pub mod potter中删除src/lib.rs。不严格要求,但消除不必要的嵌套模块。
  3. extern crate potter添加到集成测试tests/tests.rs (只有在使用Rust 2015时才需要)。

文件系统

代码语言:javascript
运行
AI代码解释
复制
├── Cargo.lock
├── Cargo.toml
├── src
│   └── lib.rs
├── target
└── tests
    └── tests.rs

src/lib.rs

代码语言:javascript
运行
AI代码解释
复制
pub struct Potter {}

impl Potter {
    pub fn new() -> Potter {
       Potter {}
    }
}

tests/tests.rs

代码语言:javascript
运行
AI代码解释
复制
use potter::Potter;

#[test]
fn it_works() {
    let pot = Potter::new();
    assert_eq!(2 + 2, 4);
}
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46867652

复制
相关文章
Pycharm中无法导入(import)自己写的模块或脚本
问题描述:我在code文件夹下编写了translate.py 和 test.py两个脚本文件。想在test.py中import translate.py的一个函数,发现却不行。 image.png 解
Aidol
2020/07/23
3.8K0
Pycharm中无法导入(import)自己写的模块或脚本
自动化测试在路上 | 导入自定义模块
形象生动的解释什么是Python的类与对象 | 一文带你了解什么是 " 对象的属性 " | 自动化测试在路上 | 函数及调用 今天接着给大家分享如何导入自定义模块,分享2种方法
测试小兵
2023/03/09
7380
自动化测试在路上 |  导入自定义模块
集成测试时 MockMvc 无法注入
如果阅读过 使用 Junit 编写单元测试[1] 的小伙伴都知道,在写对 Controller 进行单元测试时,会将 Service 层进行 Mock。
程序员小航
2022/11/24
1.1K0
集成测试时 MockMvc 无法注入
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
该方法用于 导入完整的模块 , 包括模块中的 函数 / 变量 / 类 / 代码块 等 ;
韩曙亮
2023/10/11
2610
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
在导入模块时 , 有时不需要使用模块的完整功能 , 只需要导入指定的部分功能即可 , 这样也符合最少知识设计原则 ;
韩曙亮
2023/10/11
3640
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
Python 导入模块中的类
在看代码时发现Python的导入类也可以用“.”的方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py
用户7886150
2020/12/24
2.3K0
Android Studio 3.1无法导入模块的解决办法
3月份Android Studio 3.1版正式发布,谁知新版本搞出了新问题,譬如导入已有的模块,Android Studio就死活无法正常导入。摸索了很久,才算总结出模块导入的几点解决办法: 一、依次选择菜单“File”——“New”——“Import Module”,按提示导入具体的demo。此时Android Studio 3.1毫无反应,既不重编也不在左侧列表添加新模块。此时要打开项目的settings.gradle,把下面这行:
aqi00
2019/01/18
2.7K0
python中关于模块导入的模式
举例:只想导入time模块中的ctime、time两个方法,可以按照以下的格式导入:
Java学术趴
2022/07/15
1.6K0
python中关于模块导入的模式
【Python】模块导入 ① ( Python 模块简介 | 模块概念 | 模块作用 | 模块特点 | 常见的 Python 模块 | Python 模块导入 | Python 模块导入语法 )
Python 模块 就是一个以 .py 为后缀的 Python 代码文件 , 在模块中定义有 :
韩曙亮
2023/10/11
2940
在Docker中快速测试Apache Pinot批数据导入与查询
Pinot 是一个实时分布式 OLAP 数据存储,专为提供超低延迟分析而构建,即使在极高吞吐量下也是如此。如果你还不了解Pinot,那么可以先阅读这篇文章《Apache Pinot基本介绍》,本文介绍如何以Docker方式运行Pinot,在Docker中运行Pinot对于了解Docker的新手来说是最简单不过的了。
从大数据到人工智能
2022/04/11
9160
软件测试|Python基础之模块导入和使用
在导入模块时,python会首先在内存中查找模块名,当系统中无此模块名的时候会报错
霍格沃兹测试开发Muller老师
2023/02/07
6520
java中无法解析为类型_java无法解析导入的包
.odt文件是openoffice软件产生的文档格式,可以直接用office打开,这其实就是一个压缩包,可以使用解压软件打开,里面有一个content.xml文件,这个文件内有<text:p>标签,标签内就是展示出来的内容。
全栈程序员站长
2022/10/28
4.8K0
Python在不同目录下导入模块的方法
python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。
李智
2018/08/03
3.1K0
python模块导入
[seemmo@RegionServer1 duwen]$ python Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
py3study
2020/01/14
1.5K0
python3在中文路径下文件无法导入
再导入之前,请打开notepad++确保文件是,“以UTF-8无BOM格式”的编码形式,否则也会失败。
py3study
2020/01/10
2.8K0
PyCharm无法导入第三方模块解决办法
这里运行代码时显示:ModuleNotFoundError: No module named 'schedule'
张旭博客
2022/12/27
1.7K0
PyCharm无法导入第三方模块解决办法
模块的导入
假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如
py3study
2020/01/21
1K0
Python 导入模块
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 导入模块 更多内容请见👇 Python 入门基础专栏 Python 字符串 Python 常用字符串方法 ---- Python 导入模块 1.import 模块名 2.import 模块名 as 名称缩写 3.import 模块名.子模块名 as 名称缩写 4.from 模块名 import 函
小嗷犬
2022/11/15
1.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
首先先准备两个模块,md_01_测试模块1和 md_02_测试模块2,然后在demo文件中导入模块并使用工具。
python自学网
2022/10/05
3.4K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
集成测试在软件开发中的应用和最佳实践
集成测试也叫组装测试,联合测试。是单元测试的逻辑扩展,是软件测试的重要环节,它用于验证不同模块或组件之间的交互。本文将以集成测试为主题,分析其在软件开发过程中的作用,分享一些实践原则,以及一个具体的案例,帮助大家理解并有效运用集成测试。
运维开发王义杰
2023/08/10
7230
集成测试在软件开发中的应用和最佳实践

相似问题

无法在spring模块集成测试中自动创建表

14

无法在Jest测试文件中导入模块

34

无法导入Django 3中的测试模块

23

Mocha测试:无法在模块外使用导入语句

16

Jest测试:无法找到模块,在类型记录组件导入中

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文