问题标签 [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.

0 投票
2 回答
3137 浏览

node.js - 对所有测试只运行一次 ava test.before()

我想test.before()用来引导我的测试。我尝试过的设置不起作用:

AVA 将before()在每个测试文件之前运行该函数。我可以在before调用中进行检查以检查它是否已被调用,但我想找到一个更清洁的过程。我尝试使用以下require参数:

和:

但这只是与worker.setRunner is not a function. 不确定它在那里期望什么。

0 投票
0 回答
814 浏览

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.originAVA 的动态(环境感知)吗?我知道我可以将它保持不变并将其存储在.env每个环境中。但这是我想减轻的另一项维护任务。

0 投票
3 回答
1481 浏览

express - Ava 环境变量

我有一个带有 expressjs 和 ava 的项目,我正在使用 webpack 来捆绑应用程序

webpack 还基于 NODE_ENV 从 .env 文件中加载环境变量。

如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?

谢谢!

0 投票
0 回答
58 浏览

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 个单独的错误报告/功能请求

  1. WEB-19849 支持 ANSI 命令以正确显示进度以允许一般的 ANSI 命令(这是实现动画的方式)
  2. WEB-21788 支持 ava 测试运行器以允许 Webstom 测试接口进行 ava 测试

此外,作为我自己的临时解决方案,在我的运行配置中使用点击输出(--tap),看起来更好一些。

0 投票
1 回答
1889 浏览

javascript - 当 promise 被拒绝时抛出测试失败

我有这个功能

我有以下测试来测试它:

但是我的测试失败并显示消息:

异步失败

测试返回的被拒绝的承诺

拒绝原因:

我不确定我是否误解了t.throws应该如何工作。我假设如果您希望承诺被拒绝并且它被拒绝,那么测试应该会成功。

使用 ava 0.19

0 投票
1 回答
69 浏览

javascript - ava.js 中的多个回调

我有一个回调,我想看看它是否被调用了两次。

我已经查看t.plan并在常见问题解答中说它是一个很好的用例,t.plan但您必须明确定义t.end(). 但在我的情况下,它是相同的回调。

这怎么可能?

0 投票
2 回答
818 浏览

javascript - AVA:为每个测试用例设置不同的超时

我使用 AVA 编写异步测试,并且需要为每个测试用例设置自定义超时。我还没有找到任何关于这种可能性的信息,我的测试看起来像这样:

有人知道在 AVA 中实现此功能的另一种方法吗?

0 投票
1 回答
118 浏览

node.js - 模块未在 Talib 和 AVA 中自行注册

我收到一个Module did not self register错误,我无法摆脱使用talibava

我已经尝试过 Node 8.9.0 和 9.0.0,升级了 AVA 并尝试了 talib 的 stable 和 dev 分支。我也在连续运行测试。当然,我已经清除并重建了我的node_modules文件夹——这显然不是像我看到的那样更改节点版本的情况。

测试:

第一个测试有效,但不止一个会引发该错误。在过去,我已经成功地使用clear-moduleimport-fresh清除了模块,但这次没有。

0 投票
0 回答
187 浏览

node.js - Promise.all 与 AVA 测试中的循环

我正在使用内存测试夹具加载器中的 mongo,该加载器在每次测试之前都已准备好。通常可以完美运行。

我有一个函数getSample可以进行我使用 AVA 测试的数据库调用。想用不同的参数(时间戳)多次调用它,我试过这个:

这以一种有趣的方式失败了。我的第一个电话有效(数据库结果在那里),所有其他电话都返回一个空集 - 没有错误)。

将代码更改为此格式有效。所有循环实例都找到集合和内容。

使用标准的 Mongo DB,一切正常。但显然这两条代码的工作方式有所不同,我想了解那是什么。需要明确的是,我不是在为我的内存数据库寻找修复 - 更想了解可能发生的事情。

它可能与SO 帖子有关,但不确定。

0 投票
1 回答
742 浏览

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 文件: