问题标签 [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.
ava - 在 Mac 上运行的函数中调用 AVA 测试,但在 linux 上不运行
我有一些 AVA 测试,我试图多次运行,但在不同的模拟上。例如,我想运行相同的 5 个测试,但要确保这些测试适用于各种结构化数据。我设计了一种将模拟导入测试文件的方法,并将它们与它们应该如何解析进行比较,类似于以下内容:
runEmailDecomposerTests 函数如下所示:
我的目录结构如下所示:
这一切都在我的 Mac 上本地运行,但是当我将它推送到我们的 jenkins 服务器以测试持续集成时,它失败并出现错误:
即使我可以确认 runEmailDecomposerTests 函数肯定被调用了。令人困惑的部分是它在我的 Mac 上本地传递。jenkins 服务器是一个 Linux 虚拟机,所以这就是我倾向于 mac/linux 问题的原因,但我不能确定。更进一步,大约五分之一的它通过我们的 CI 服务器,所以它可能是某种竞争条件?
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; }'.
:
有没有办法做到这一点,而无需像这样一直投射上下文:
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 它不能解决而不是破坏?
谢谢 !
javascript - 错误:*.default 不是构造函数
在测试从打字稿文件转译的一些 javascript 代码时,我收到以下错误。
这是错误:
这是导致错误的代码行:
这是原始的打字稿文件map-action.ts:
这是转译的 .js 文件map-action.js:
ava - Ava 为 t.throws 解除绑定
AVA 似乎解除了实例方法“this”的绑定。
对于上面的代码,我得到这个:
我试过像这样手动绑定这个promise:person1.sayMyName.bind(person1),但这似乎也不起作用。
javascript - 使用带有 Avoriaz 的 AVA 在 Vue.js 中测试计算属性
我正在尝试使用 AVA 和 Avoriaz 测试 Vue.js 组件的计算属性。我可以挂载组件并正常访问数据属性。
当我尝试访问计算属性时,该函数似乎对该组件上的数据没有作用域。
我得到的错误是Error: Cannot read property 'firstName' of undefined
测试文件:
零件:
计算isTrue
属性似乎可以工作,但不依赖于组件中的任何数据。
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?
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。
关于可能导致这种情况的任何想法?
phantomjs - 将 AVA 与 PhantomJS 一起使用
我正在尝试使用 AVA 和 PhantomJS(实际上是 phantomjs-node)在网页上运行一些测试
我必须文件,第一个是使用 Phantom (load-page.js) 加载网页的模块
第二个是测试:
页面加载后是否可以运行测试?我想用同一个页面运行几个测试,但我不想每次都加载页面。
谢谢