ESLint 、 e2e test 学习

Lint和Format的区别:
Lint只会告诉你代码中的错误或者不符合规范的地方,而Format是用来对格式作调整的
HTML/tpl:HTMLLint
CSS/SCSS:Stylelint
JS/JSX:Eslint

  • JSLint:古老,不能配置和扩展
  • JSHint:可配置的JSLint版本,但难以知道哪个规则产生错误
  • ESLint:高度可配置

ESLint

配置文件: .eslintrc,.eslintrc.js, .eslintrc.yml
rules:

  • off 或 0 :关闭规则
  • warn 或 1 : 开启规则, 使用警告级别的错误
  • error 或 2 : 开启规则, 使用错误级别的错误
{
	"rules" :{
		"semi" : ["error", "never"],
		"quotes": ["error", "single"]
	}
}

Extends: 使用别人提供的包,如google

{
	"extends": "google"
}

plugins: 允许使用插件,在npm中搜索eslint-plugin-*,可以找到第三方提供的大量自定义的插件

{
	"extends": "google""plugins": [
		"react"
	],
	"rules": {
		"semi" : ["error", "never"],
		"quotes": ["error", "single"]
	}
}

安装

# --save-dev会把 eslint 安抓过到 package.json文件中的 devDependencies 属性中,意思是知识开发阶段用到的这个包,上线时就不需要这个包了
npm install eslint --save-dev

新增package.json脚本

"scripts": {
	"lint": "eslint src",
	"lint:create": "eslint --init"
}

然后使用run命令

npm run lint

或者 直接使用npx命令

npx eslint --init

ESLint初始化
配置方法使用eslint --init方法
在这里插入图片描述
在这里插入图片描述
.eslintignore
可以在项目根目录创建,告诉ESLint忽略某些文件或者目录

常用的规则
comma-dangle: 要求或禁止使用拖尾逗号

rules: {
	"comma-dangle": ["error", "never"]
}

quotes:该规则强制使用一致的反勾号、双引号和单引号

rules: {
	"quotes": ["error", "single"]
}

semi: 句尾分号

rules: {
	"semi": ["error", "never"]
}

no-multiple-empty-lines:多个空行

rules: {
	"no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1 }]
}

camelcase: 驼峰命名

rules: {
	 "camelcase": "error"
}

no-console:禁用console

rules: {
	 "no-console": process.env.NODE_ENV === 'production' ? "error" : "off"
}

eqeqeq:强等于

rules: {
	 "eqeqeq": "error"
}

space-before-blocks:要求或禁止语句块之前的空格

rules: {
	 "space-before-blocks": "error"
}

StyleLint

安装依赖

npm install stylelint -D
npm install -D stylelint-config-recommended stylelint-config-standard

.stylelintigore 忽略stylelint检查的文件

/src/**/*.css

.stylelintrc.js

module.exports = {
	"extends": ["stylelint-config-recommended", "stylelint-config-standard"],
	"rules": {
		"indentation": 2
	}
}

e2e test

通常对web应用程序执行两种类型的测试:单元测试和端到端(E2E)测试
单元测试:单元通常是单个函数,也可以是类或甚至是复杂的算法
e2e测试:功能测试,测试整个应用程序
e2e测试与应用程序交互,就像真实用户一样
1.加载您的网站
2.点击“注册”链接
3.为注册表单中的输入提供一些有效的详细信息
4.单击“注册按钮”
如果身份验证令牌已存储在Cookie中别切应用程序重定向到配置文件页面,则应通过此测试

e2e测试优点:

  • 可以一次隐式测试很多东西
  • e2e测试可确保您拥有一个工作系统

e2e测试缺点:

  • 运行缓慢:通常需要5或10分钟才能运行一个站点
  • 测试很脆弱,一个无关紧要的变化,如改变组件逻辑,就需要重新设计e2d test了
  • 测试无法查明失败的原因

所以,主要的业务流程可能会写e2d,不过规模要小很多

  • 便于给PM展示业务流程
  • 便于修改bug之后的回归

cypress

安装

npm install cypress --save-dev

使用方式

npx cypress open

或者添加package.json 后使用npm命令 npm run cypress:open

{
	"scripts": {
		"cypress:open": "cypress open"
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十几款必备AI写作软件!涵盖国内国外,免费在线一键生成原创文案文章!

今天,就让我带您领略市面上那些备受瞩目的10款AI写作神器,一同探索哪款工具 将成为您创作旅程中的得力助手。首先,让我们揭开这些A1写作工具的神秘面纱 深入了解它们的基本功能。这些工具如同智慧之笔,能够迅速为您生成文章、段 落…

工作记录:vue-grid-layout 修改 margin 导致 item 高度剧烈变化

问题 用 vue-gird-layout 时发现,当改变 margin 值时,item 的尺寸也会跟着变化。 如下图:row height 和每个 item 的 h 都保持不变。修改 margin-y,item 的实际高度也跟着变了: 原因 研究了一番,发现原…

MySql 主从同步-在原来同步基础上增加历史数据库

在MySql已经主从同步的后,由于有新的需求再增加1个历史数据库,要改原来的1个变成现在的2个数据库。在官网并没有找到类似的场景(官方同步多个数据是从一开始就设置,不是后续增加的),只能结合以往的经验自己…

《HCIP-openEuler实验指导手册》1.6 Apache静态资源配置

知识点 常用用途: 软件仓库镜像及提供下载服务: 配置步骤 删除网站主目录中的文件(本实验机目录为/home/source ip为192.168.12.137 端口为81) cd /home/source rm -rf *在主目录中新建6个文件夹如下图 mkdir test{1..6}新建…

VTK----VTK数据结构详解3(代码篇)

上篇文章(VTK----VTK数据结构详解(计算机篇)-CSDN博客)从计算机数据结构(数组、链表等)的角度对数据数组、数据对象、数据属性的实现原理进行了说明,下面从代码的层面详细说明它们的使用及相关实…

ssm082基于java斗车交易系统设计与实现+vue

斗车交易系统 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理&…

12.Blender 界面介绍(上)及物体基础编辑操作

设置语言 首先在菜单栏打开编辑-Preferences-界面-翻译,可以修改语言 这里使用的是Steam上下载的4.1版本 工具栏 左边的工具栏,按T就会出现,再按T就会隐藏 右边的工具栏是按N,按N显示,再按N隐藏 旋转画面 长按鼠…

C语言面试题之相交链表

相交链表 实例要求 1、给定两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。2、如果两个链表不存在相交节点,返回 null 。示例: 实例分析 可以使用两种方法:哈希表方法和双指针方法。哈希表方法…

Golang基础7-并发编程

并发编程 https://www.cnblogs.com/Survivalist/p/11527949.html 进程和线程、协程的区别_线程协程进程的区别-CSDN博客 Golang中的并发编程是一个重点,我们要了解Golang中的并发Goroutine因此需要先理解进程、线程、之后再理解协程。 进程:操作系统进…

某翻译平台翻译接口逆向之webpack学习

逆向网址 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLw 逆向链接 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLyMv 逆向接口 aHR0cHM6Ly9kaWN0LnlvdWRhby5jb20vd2VidHJhbnNsYXRl 逆向过程 请求方式 POST 逆向参数 sign c168e4cb76169e90f82d28118dbd24d2 接口请求结果解密 过程分析 根据XHR…

免费获取!遗传算法+多目标规划算法+自适应神经模糊系统程序代码!

前言 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世纪70年代提出,该算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,通过数学的方式,将问题的求解过程转…

全国省级金融发展水平数据集(2000-2022年)

01、数据简介 金融发展水平是一个国家或地区经济实力和国际竞争力的重要体现。它反映了金融体系的成熟程度和发展水平,是衡量一个国家或地区经济发展质量的重要指标。金融发展水平的提高,意味着金融体系能够更好地服务实体经济,推动经济增长…

3.7设计模式——Observer 观察者模式(行为型)

意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都得到通知并被自动更新。 结构 Subject(目标)知道它的观察者,可以有任意多个观察者观察同一个目标,提供注册和删…

模块三:二分——153.寻找旋转排序数组中的最小值

文章目录 题目描述算法原理解法一:暴力查找解法二:二分查找疑问 代码实现解法一:暴力查找解法二:CJava 题目描述 题目链接:153.寻找旋转排序数组中的最小值 根据题目的要求时间复杂度为O(log N)可知需要使用二分查找…

电子负载仪的远端控制

前言 最近研究了电子负载仪的远端控制(区别于前面板控制),主要是用于程序控制,避免繁琐复杂的人工控制,举了南京嘉拓和艾维泰科的例子。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com …

基于JavaWEB的学生考勤管理系统(含论文)

本系统是用Java语言写的,基于JavaWEB的学生考勤管理系统 主要有三大模块,学生,教师和管理员模块,功能如下: 学生模块 教师模块: 管理员模块

深入了解Semaphore、CountDownLatch等实用工具的用法

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

4月26(信息差)

🌍 1170万台 华为跃升重回首位!苹果跌至第五位 🎄工业软件大事件 —— OGG 1.0 发布,华为贡献全部源代码 ✨ 苹果发布 OpenELM:专为在设备端运行而设计的小型开源 AI 模型 1.FisheyeDetNet:首个基于鱼眼相…

LED驱动模块RSC6218A 5W-18W迷你高效驱动电源应用-REASUNOS(瑞森半导体)

一、LED驱动模块RSC6218A REASUNOS(瑞森半导体)通过持续投入研发,提升LLC应用技术,集成控制芯片与功率转换,成功推出新一代产品RSC6218A WSOP-16,延续瑞森LLC拓扑方案,时机趋势完全迎合我国双碳政策,电气特…

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

目录 EasySignin cool_index SuiteCRM web1234 法一、条件竞争(没成功) 法二、session反序列化 EasySignin 先随便注册个账号登录,然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SSRF,不能直接读本地文…
最新文章