问题标签 [ava]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 对所有测试只运行一次 ava test.before()
我想test.before()
用来引导我的测试。我尝试过的设置不起作用:
AVA 将before()
在每个测试文件之前运行该函数。我可以在before
调用中进行检查以检查它是否已被调用,但我想找到一个更清洁的过程。我尝试使用以下require
参数:
和:
但这只是与worker.setRunner is not a function
. 不确定它在那里期望什么。
javascript - 如何使用 AVA 模拟浏览器特定属性“window.location.origin”
语境
我有使用后端 API 的前端 React+Webpack 应用程序。我的 Webpack 设置取决于window.location.origin
属性,用于设置和部署过程。目前,我正在使用 Karma testrunner 并试图用 AVA testrunner 替换它。
我正在尝试将 AVA 与webpack 配方的单个条目设置一起应用我还将JSDOM作为节点的 dom 仿真器应用。
问题
捆绑的一些测试使用该location.origin
属性。webpack && ava
在运行脚本期间引发错误:
Karma 在浏览器引擎上运行并window.location.origin
动态地再现价值。与 AVA 不同。运行测试时它不运行任何类型的浏览器。我只能(据我所知)用 来“模拟”浏览器环境jsdom
,这就是我想要做的。但是问题链接location.origin
不支持特定属性jsdom
问题
任何人都可以跟踪我的解决方案来重现window.location.origin
AVA 的动态(环境感知)吗?我知道我可以将它保持不变并将其存储在.env
每个环境中。但这是我想减轻的另一项维护任务。
express - Ava 环境变量
我有一个带有 expressjs 和 ava 的项目,我正在使用 webpack 来捆绑应用程序
webpack 还基于 NODE_ENV 从 .env 文件中加载环境变量。
如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?
谢谢!
npm - 运行工具窗口中的动画文本
我将 PhpStorm 与 Laravel 项目一起使用,并使用 AVA 设置了一些基本的 JS 测试。
当我在命令行中运行它们时,它们都可以正常工作。例如:
例子.text.js
如果我在终端中运行它,我会得到:
npm 运行 ava src/example.test.js
阿瓦 [...]
ava "src/example.test.js"
1 通过
但是,如果我设置运行配置并通过 PhpStorm 的运行窗口运行它,我会得到:
npm 运行 ava src/example.test.js
阿瓦 [...]
ava "src/example.test.js"
⠋<br> ⠙<br> ⠹<br> ⠸<br> ⠼<br> ⠴<br> ⠦<br> ⠧<br> ⠧ 只是一个模型……</p>
1 次通过 ⠇ 只是一个样机……</p>
1 次通过 1 次通过
这是整个文本“动画”。
这不是一个真正的问题,但是当有很多测试时它只是很烦人,因为你必须通过所有这些垃圾来获得真正有意义的信息。
有没有办法让运行窗口为文本设置动画?
更新
如果它对任何人有帮助,我将把评论对话移到这里:
webstorm 中有 2 个单独的错误报告/功能请求
- WEB-19849 支持 ANSI 命令以正确显示进度以允许一般的 ANSI 命令(这是实现动画的方式)
- WEB-21788 支持 ava 测试运行器以允许 Webstom 测试接口进行 ava 测试
此外,作为我自己的临时解决方案,在我的运行配置中使用点击输出(--tap),看起来更好一些。
javascript - 当 promise 被拒绝时抛出测试失败
我有这个功能
我有以下测试来测试它:
但是我的测试失败并显示消息:
异步失败
测试返回的被拒绝的承诺
拒绝原因:
我不确定我是否误解了t.throws
应该如何工作。我假设如果您希望承诺被拒绝并且它被拒绝,那么测试应该会成功。
使用 ava 0.19
javascript - AVA:为每个测试用例设置不同的超时
我使用 AVA 编写异步测试,并且需要为每个测试用例设置自定义超时。我还没有找到任何关于这种可能性的信息,我的测试看起来像这样:
有人知道在 AVA 中实现此功能的另一种方法吗?
node.js - 模块未在 Talib 和 AVA 中自行注册
我收到一个Module did not self register
错误,我无法摆脱使用talib和ava。
我已经尝试过 Node 8.9.0 和 9.0.0,升级了 AVA 并尝试了 talib 的 stable 和 dev 分支。我也在连续运行测试。当然,我已经清除并重建了我的node_modules
文件夹——这显然不是像我看到的那样更改节点版本的情况。
测试:
第一个测试有效,但不止一个会引发该错误。在过去,我已经成功地使用clear-module和import-fresh清除了模块,但这次没有。
node.js - Promise.all 与 AVA 测试中的循环
我正在使用内存测试夹具加载器中的 mongo,该加载器在每次测试之前都已准备好。通常可以完美运行。
我有一个函数getSample
可以进行我使用 AVA 测试的数据库调用。想用不同的参数(时间戳)多次调用它,我试过这个:
这以一种有趣的方式失败了。我的第一个电话有效(数据库结果在那里),所有其他电话都返回一个空集 - 没有错误)。
将代码更改为此格式有效。所有循环实例都找到集合和内容。
使用标准的 Mongo DB,一切正常。但显然这两条代码的工作方式有所不同,我想了解那是什么。需要明确的是,我不是在为我的内存数据库寻找修复 - 更想了解可能发生的事情。
它可能与此SO 帖子有关,但不确定。
javascript - SyntaxError: Unexpected token < 尝试使用 AVA 进行测试时
我原来的问题出现在基于nuxt的项目中。为了解决这个问题,我通过 vue-cli 建立了一个新项目,并再次通过 npm 安装了 AVA,但它没有改变任何东西。我在 github 上发现了这个问题(https://github.com/nuxt/nuxt.js/issues/438),其中一条评论(Atinux,从 3 月 25 日开始)似乎回答了我的问题,但是当我尝试转到提到的链接我得到 404。问题作者说他永远不会想到使用完整路径,但我真的不明白他到底指的是什么地方。
我还尝试了几种不同的组件语法,但据我了解,问题出在 AVA 设置中,因为问题出在标记的第一个“<”符号中。当我不尝试导入我的组件并使用简单时,test.('test 2', t => t.pass())
一切都很好并且测试通过了。我将非常感谢有关此问题的任何提示!
我的 HelloWorld.vue 文件:
我的 HelloWorld.test.js 文件:
我的 package.json 文件: