androidTest 与 Test详解

news2024/9/22 17:35:52

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

文章目录

  • 说在前面
  • 言归正传

说在前面

在本文你将了解到 Android 项目中 androidTest 和 test 的区别。

言归正传

在创建 Android 工程时,Android studio 会自动帮我们生成三个文件夹,分别是 androidTest、main、test[unitTest]。

在这里插入图片描述
androidTest:是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。

main:是用来写 app 的逻辑代码和视图的。

test[unitTest]:是用来编写Unit Test测试用例的,是对项目进行自动化测试的另一种方式。

从上述描述中了解到 androidTest 和 test 都是用来是测试用例的 只是一个是 android test 一个是 unit test,unit test我们经常听到是单元测试,那么 android test又是什么呢?

首先需要了解的是我们构建出的 apk,测试代码并没有包含在内。测试代码能访问 app 代码,但是apk不能访问测试代码,而且测试不会被包含在 apk 包中。

在创建 Android 项目中,会在 build.gradle文件中看下一下内容,自动引入了 test的测试框架

在这里插入图片描述

Unit Test又称为local test代码,基于JVM,

对比下androidTest 和 test

androidTesttest
本地测试代码Instrumented Tests 依赖Android 库
依赖本地JVM依赖Android 环境
效率快效率慢

先来运行 test 文件夹下的内容,点击代码左侧的绿色运行UI,选择对应的文件 直接运行,我们会在控制台看到运行结果:Tests passed:1,一个测试用例通过。

在这里插入图片描述

或者是在命令行窗口直接运行命令:gradle :app:testDebugUnitTest 来执行测试用例。

单元测试运行完之后在build文件夹下会生成一个测试报告:build—>reports—>tests—>index.html

在这里插入图片描述

选择浏览器方式打开对应的html文件,会看到详细的测试结果

在这里插入图片描述

androidTest

运行方式和 test 运行方式一致,我们直接查看运行结果,会看到我们运行的设备也在其中,

在这里插入图片描述

运行结束之后也同样有一个测试报告,build—>reports—>tests—>index.html,如果没有真机设备或者模拟器这个case是运行不了的。一般情况下涉及到了UI组件,就需要使真机来测试,一般选用Integration Tests测试方式

在这里插入图片描述

androidTest 更像是整合了一些类确保他们组合起来的表现符合预期。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1947820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Server - 配置 Kubernetes 多任务流程 KubeFlow Pipeline 的开发教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140281680 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Kubern…

错误解决 error CS0117: ‘Buffer‘ does not contain a definition for ‘BlockCopy‘

Unity 2022.3.9f1 导入 Runtime OBJ Importer 后出现: error CS0117: ‘Buffer’ does not contain a definition for ‘BlockCopy’ 解决办法: 源代码: int DDS_HEADER_SIZE 128; byte[] dxtBytes new byte[ddsBytes.Length - DDS_HEAD…

深度学习系列一

激活函数 sigmod 梯度消失问题: sigmoid函数的导数在输入值较大或较小时接近于0。在反向传播过程中,这些小梯度会相乘,导致深层网络的梯度变得非常小。结果是,深层网络的参数几乎不会更新,训练变得非常困难。这就是为…

基于flask的天气数据可视化系统1.0

基于flask的天气数据可视化系统1.0 一、效果展示二、flask简介三、图表绘制四、前端页面编写五、完整代码一、效果展示 该flask项目相对简单入门,使用了flask框架、bootstrap前端技术,数据使用的是上一篇scrapy爬取城市天气数据中爬取到的数据。 二、flask简介 Flask是一个…

在linux中,如何搭建nacos2.4.0的版本,修改nacos密码

由于最近服务器经常被攻击,看了一下发现是nacos版本过低,导致被抓了肉鸡,导致服务器的网端被跑满,选择重新搭建nacos,进入服务器后,首先确定服务器是否安装java,先执行java -version&#xff0c…

如何应对SQL注入攻击?

引言 在现今的网络世界中,安全性已成为至关重要的话题。SQL注入(SQL Injection)是一种常见且危险的网络攻击方式,攻击者通过向SQL查询中插入恶意代码来操控数据库,从而获取敏感信息或破坏数据。了解SQL注入的各种类型…

【数据结构】建堆算法复杂度分析及TOP-K问题

【数据结构】建堆算法复杂度分析及TOP-K问题 🔥个人主页:大白的编程日记 🔥专栏:数据结构 文章目录 【数据结构】建堆算法复杂度分析及TOP-K问题前言一.复杂度分析1.1向下建堆复杂度1.2向上建堆复杂度1.3堆排序复杂度 二.TOP-K问…

C++高性能通信:了解Iceoryx与零拷贝技术的实现与应用

文章目录 0. 引言1. Iceoryx使用到的零拷贝技术1.1 零拷贝技术概述1.2 零拷贝的优势1.3 Iceoryx零拷贝的实现1.4 信息轮询与信号触发 2. Iceoryx的核心概念2.1 RouDi (iox-roudi)2.2 Runtime2.3 Publisher2.4 Subscriber2.5 Topic 3. Iceoryx使用示例3.1 发布者程序3.2 订阅者程…

1万+台网络设备运维如何选择支撑工具?

针对1万台网络设备的运维管理,需要采取一套系统化、自动化且高效的管理方法与策略。“工欲善其事,必先利其器”,以下结合一些关键步骤探讨运维支撑软件工具的方案。 1 建立完善的设备档案 设备信息记录: 为每台设备建立详细的…

科研成果 | 高精尖中心取得高性能区块链交易调度技术突破

近日,未来区块链与隐私计算高精尖创新中心研究团队在区块链交易效率方面取得突破性进展,最新成果“高性能区块链交易调度引擎”首次为长安链带来高并行度的交易调度,充分利用现有计算资源,显著提升长安链交易处理速度。 随着区块…

安卓单机游戏:《植物大战僵尸:重生》一款深受玩家喜爱的塔防游戏

一款深受玩家喜爱的塔防游戏,在这个游戏中,玩家需要通过种植不同类型的植物来阻止不断涌来的僵尸入侵,而每种植物都有自己的能力与特点,游戏画面和音效都非常出色,剧情也十分有趣,难度不断升级,…

JAVA代码审计JAVA0基础学习(需要WEB基础知识)DAY2

JAVA 在 SQL执行当中 分为3种写法: JDBC注入分析 Mybatis注入分析 Hibernate注入分析 JDBC 模式不安全JAVA代码示例部分特征 定义了一个 sql 参数 直接让用户填入id的内容 一个最简单的SQL语句就被执行了 使用安全语句却并没有被执行 Mybatis: #…

第13周 简历职位功能开发与Zookeeper实战

第13周 简历职位功能开发与Zookeeper实战 本章概述1. Mysql8窗口函数over使用1.1 演示表结构与数据1.2 案例1:获取男女总分数1.3 案例2****************************************************************************************本章概述 1. Mysql8窗口函数over使用 参考案例…

行业不同怎么选企业管理咨询公司

在选择企业管理咨询公司时,不同行业的企业往往面临着各自独特的挑战和需求。因此,选择一家适合自身行业特点、能够提供专业且有针对性的咨询服务的管理咨询公司至关重要。本文将从行业差异的角度出发,探讨如何根据企业所在行业的不同&#xf…

二维码的生成与识别(python)

二维码生成 from PIL import Image import qrcode from qrcode.image.styledpil import StyledPilImage from qrcode.image.styles.colormasks import SolidFillColorMask from qrcode.image.styles.moduledrawers import SquareModuleDrawer# 创建二维码对象 qr qrcode.QRCo…

智能编程,一触即发:使用AIGC优化CSS——提升前端开发效率与质量

文章目录 一、AIGC在CSS优化中的应用场景智能代码生成自动布局调整性能优化建议样式和色彩建议 二、使用AIGC优化CSS的具体步骤明确需求选择AIGC工具输入描述或设计稿审查和调整集成和测试 三、AIGC优化CSS的优势与挑战优势:挑战: 《CSS创意项目实践&…

vue3前端开发-小兔鲜项目-登录和非登录状态下的模板适配

vue3前端开发-小兔鲜项目-登录和非登录状态下的模板适配&#xff01;有了上次的内容铺垫&#xff0c;我们可以根据用户的token来判定&#xff0c;到底是显示什么内容了。 1&#xff1a;我们在对应的导航组件内修改完善一下内容即可。 <script setup> import { useUserSt…

ATE测试设备ATECLOUD专注于电源模块、电源芯片和射频组件测试

在追求效率与精度的时代背景下&#xff0c;电子测试测量行业迎来了ATE自动化测试设备的革新。这一设备的出现&#xff0c;不仅简化了测试流程&#xff0c;还大幅提高了测试的准确性和速度。 新ATE自动化测试设备&#xff1a;ATECLOUD测试平台 纳米软件深耕电测行业16年&#xf…

算法 day4 【双指针、快慢指针、环形链表】链表下

⚡刷题计划day4继续&#xff0c;可以点个免费的赞哦~ 下一期将会开启哈希表刷题专题&#xff0c;往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录 ⚡刷题计划day4继续&#xff0c;可以点个免费的赞哦~ 下一期将会开启哈希表刷题…

无法连接网络打印机0x00000709原因分析及多种解决方法

在日常办公和生活中&#xff0c;打印机是不可或缺的重要设备。然而&#xff0c;有时在连接打印机的过程中&#xff0c;我们可能会遇到错误代码0x00000709的提示。有更新补丁导致的、有访问共享打印机服务异常、有访问共享打印机驱动异常等问题导致的&#xff0c;针对访问共享打…