问题标签 [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 投票
1 回答
97 浏览

ava - 在 Mac 上运行的函数中调用 AVA 测试,但在 linux 上不运行

我有一些 AVA 测试,我试图多次运行,但在不同的模拟上。例如,我想运行相同的 5 个测试,但要确保这些测试适用于各种结构化数据。我设计了一种将模拟导入测试文件的方法,并将它们与它们应该如何解析进行比较,类似于以下内容:

runEmailDecomposerTests 函数如下所示:

我的目录结构如下所示:

这一切都在我的 Mac 上本地运行,但是当我将它推送到我们的 jenkins 服务器以测试持续集成时,它失败并出现错误:

即使我可以确认 runEmailDecomposerTests 函数肯定被调用了。令人困惑的部分是它在我的 Mac 上本地传递。jenkins 服务器是一个 Linux 虚拟机,所以这就是我倾向于 mac/linux 问题的原因,但我不能确定。更进一步,大约五分之一的它通过我们的 CI 服务器,所以它可能是某种竞争条件?

0 投票
2 回答
1915 浏览

typescript - 后续的变量声明必须具有相同的类型。任何

我正在使用 ava (没有链接,因为我不允许使用超过 2 )进行测试,并且想要输入 ava 的测试上下文。它是在 ava 的定义文件中输入any的。

我特别想要的是打字稿编译器知道它属于以下测试t.context中的类型:{foo: number}

我试图使用声明合并来做到这一点,但它失败了TS2403: Subsequent variable declarations must have the same type. Variable 'context' must be of type 'any', but here has type '{ foo: number; }'.

有没有办法做到这一点,而无需像这样一直投射上下文:

0 投票
1 回答
915 浏览

javascript - 使用 Typescript 和 Ava 设置测试:不好的要求

我正在使用 Typescript 设置 AVA 来测试我的 JS 代码。在内部,我首先调用 TSC 来编译我的文件,然后使用 babel-register 调用 AVA 来测试它们(Babel 寄存器允许解析需要)。

testJs 是 Ts 的输出文件夹。我的问题是,即使认为一切正常,我也有这种说法,通常被 Webpack 采纳:

Webpack 温和地要求它,但 babel-register 不需要。我不得不改变行为以接受 .css 文件作为 noop。这是问题:因为我使用 tsc 作为编译器,所以这些文件根本不会在 testJs 中复制,这意味着它们首先不可用。

我想知道解决这个问题的最佳方法是什么,因为我认为复制粘贴整个文件夹(以使所有文件都可用)只是为了执行测试有点矫枉过正。特别是因为,如果我突然导入一个 .json 文件(例如)我会有新的问题。

例如,有没有办法告诉 babel-register 忽略 require 它不能解决而不是破坏?

谢谢 !

0 投票
5 回答
98798 浏览

javascript - 错误:*.default 不是构造函数

在测试从打字稿文件转译的一些 javascript 代码时,我收到以下错误。

这是错误:

这是导致错误的代码行:

这是原始的打字稿文件map-action.ts

这是转译的 .js 文件map-action.js

0 投票
1 回答
45 浏览

ava - Ava 为 t.throws 解除绑定

AVA 似乎解除了实例方法“this”的绑定。

对于上面的代码,我得到这个:

我试过像这样手动绑定这个promise:person1.sayMyName.bind(person1),但这似乎也不起作用。

0 投票
1 回答
1397 浏览

javascript - 使用带有 Avoriaz 的 AVA 在 Vue.js 中测试计算属性

我正在尝试使用 AVA 和 Avoriaz 测试 Vue.js 组件的计算属性。我可以挂载组件并正常访问数据属性。

当我尝试访问计算属性时,该函数似乎对该组件上的数据没有作用域。

我得到的错误是Error: Cannot read property 'firstName' of undefined

测试文件:

零件:

计算isTrue属性似乎可以工作,但不依赖于组件中的任何数据。

0 投票
1 回答
734 浏览

json - Converting TSV file to JSON using text2json return no value

I'm trying to convert a TSV file into JSON and write it to disk using text2json.

Input data

There is an empty line at the end

Test

I've this test running with ava

Code

And this method based on text2json:

Question

I see not trace of the end event being triggered, and the convertToJson() return nothing so my test fail, am I missing something?

0 投票
1 回答
683 浏览

javascript - 与弹出窗口 Webdriverio 交互时出现问题

我在使用 selenium 和 webdriverio 进行测试期间尝试与弹出的 PayPal 窗口进行交互(我也使用 AVA 作为测试运行器)。我能够切换到弹出窗口,当我测试是否启用了表单元素时,它返回 true。但是,当我设置该元素的值时,我会收到此错误消息:

控制台消息 1

这是我的代码:

当我使用:

我回来控制台结果 2

有什么建议么?谢谢

0 投票
1 回答
316 浏览

postgresql - ava js test GET 返回代码 204 POSTMAN GET 返回 200

我使用 koa js 2 和 postgres 数据库制作了一些 REST API 端点。

我有一个 setup/teardown 程序,它在运行任何测试之前创建/删除 postgres 数据库目录(例如 test_db)。(我使用 npm script 'pretest' hook 来做 db setup 和 'posttest' 来做 db teardown)。

当我运行 ava js 测试时,我有:

2 个 POST 测试(插入 2 行)- 这两个都通过
1 个 GET 测试(例如 get /users/1)- FAIL:响应代码是 204 而不是 200
1 个 PUT 测试(例如 POST /users/:id)- FAIL:响应代码是 204 而不是 200 。

我可以针对我的开发配置运行这些测试,它们通过了

我不明白 POST 如何成功(将一行插入到表中),然后刚刚插入的行的 GET 返回 204(无数据)。

目前没有发生测试数据库拆卸,所以我可以查看测试数据库并验证 POSTS 确实成功,插入的行具有正确的 ID 值(如预期的那样)。(例如,我可以看到一个 id==1 的用户和一个 id==2 的用户)所以在执行测试时调用端点 /users/1 或 /users/2 应该会成功。

如果我使用测试数据库启动我的服务器,并针对这些端点和测试数据库运行 POSTMAN,一切正常(例如 GET /users/1 返回正确,GET /users/2 也是如此)我得到 json 返回和 200 的代码而不是 204。

我不明白为什么当对 POSTMAN 的相同调用返回代码 200 和有效的 json 响应时,我的 ava 测试会得到代码 204。

关于可能导致这种情况的任何想法?

0 投票
1 回答
229 浏览

phantomjs - 将 AVA 与 PhantomJS 一起使用

我正在尝试使用 AVA 和 PhantomJS(实际上是 phantomjs-node)在网页上运行一些测试

我必须文件,第一个是使用 Phantom (load-page.js) 加载网页的模块

第二个是测试:

页面加载后是否可以运行测试?我想用同一个页面运行几个测试,但我不想每次都加载页面。

谢谢