问题标签 [ex-unit]

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 回答
46 浏览

continuous-integration - 当测试中有“@tag”时,我如何使 CI 失败?

我们的代码审查中经常有评论告诉人们@tag从他们标记的测试中删除他们以具有更紧密的迭代循环。但是,我认为依靠人类发表这些评论是一种浪费。

是否有一些选项mix testcredo其他一些工具可以@tag在测试中检测?

0 投票
1 回答
157 浏览

elixir - 如何编写 Elixir doctest 来验证空 MapSet

刚刚学习了 Elixir 中的 doctest,我正在尝试编写一个 Elixir doctest 来验证一个结构是否包含两个空的 MapSet。

当我使用它运行时mix test,出现以下错误:

然而,在 IEx 会话中一切运行良好:

谢谢你的帮助!

0 投票
2 回答
348 浏览

erlang - 在 Elixir ExUnit 中,我如何保证 Supervisor 将创建一个新的 GeNserver?

我正在学习在 Elixir 中进行测试,并且出现了这个问题:

当我运行以下测试时,有时它通过,有时没有,我认为这是主管没有时间重新启动 GenServer 的事实:

发生时,这是错误:

我该如何防止这种情况发生?超时是一个好方法吗?

0 投票
1 回答
246 浏览

elixir - 如何使用 Elixir 的 doctest 测试协议实现?

我希望能够在 Elixir中对协议实现进行doctest 。

这是一些示例代码:

此测试代码不起作用(因为它只能找到Foo模块中定义的函数,在 之外defimpl):

如何测试defimpl块?

0 投票
1 回答
333 浏览

elixir - Enum.each 在循环 ExUnit 测试时丢失变量

运行以下代码时,我收到警告:

接着是失败的测试:

似乎在Enum.each块中char为该行定义了值,test "... #{char}" do但在断言中变得未定义。

为什么会这样?

0 投票
1 回答
81 浏览

elixir - 使用 Ecto 在 Elixir 的测试中有时会出现奇怪的错误

错误:

我尝试将故障线更改为此但仍然收到相同的错误:

我用于 client_id 的值是数字字符串,例如“1234”,但有时Ecto 无法弄清楚。这只发生在 1/10 左右的测试中。据我所知,它在代码正常运行时一直有效。我怀疑这与测试运行的顺序有关,但我不确定。其他人有类似的问题和潜在的解决方案吗?

编辑:我认为正在发生的事情是代码“1234”中的某处变成了1234。我不知道这是如何或为什么会发生的。我从 json 文件中提取这些值,所以我认为它可能来自解析器,但似乎没有发生。此外,所有值都可以毫无问题地插入到数据库中。它在更新时触发了变更集错误,因此代码以某种方式将字符串解析为数字。

已解决:我之前编写的一个 doctest 触发插入数据库,我在 doctest 中使用 1234 而不是正确使用“1234”,所以这一直是我的错误。

0 投票
1 回答
423 浏览

elixir - **所有**测试完成后如何清理测试数据库?

我有一个测试模块一个接一个地同步运行。我想在所有
测试完成 后清除测试对数据库所做的所有更改,即我希望数据在一个测试到另一个测试之间保留在数据库中。 我的应用程序正在使用 PostgreSQL 数据库 ( )。 当我在函数中使用时,每次测试后数据库都会被清理。 这是我的文件:
MyRepo
Ecto.Adapters.SQL.Sandbox.checkout(MyRepo)setup_all
condig/test.exs

正确的方法是什么?

0 投票
3 回答
568 浏览

elixir - 使用 ExUnit 测试 CLI Elixir 脚本

我正在编写单个exs文件 Elixir 脚本(不使用mix)。该脚本包含一个模块,以及一个在外部范围内开始接受输入stdin并将其发送到模块函数的函数调用。

我还有第二个文件,其中包含我所有的单元测试。但是,我有两个问题:

  1. 当程序在 ExUnit 中等待输入时stin,直到我按下 Ctrl+D(输入结束),测试才完成。我希望在不运行实际应用程序的情况下对模块内的各个函数运行测试。
  2. 我还想为 CLI 接口编写测试,检查它的输出stdoutstdin. 这可以用 ExUnit 完成吗?
0 投票
1 回答
754 浏览

unit-testing - 如何测试 GenServer 重启行为?

在我的应用程序中,我有一个 GenServer。它备份在代理中重新启动所需的数据。我想测试我的 GenServer 是否正确备份和恢复,所以我想启动备份代理,然后重新启动 GenServer 并查看它是否有效(记住重新启动之前的配置)。

现在我已经start_supervised!在测试设置中配置并启动了 GenServer(使用 )。我需要以某种方式重新启动该 GenServer。

有什么好的方法吗?我应该完全不同吗?是否有不同的、正确的测试重启行为的方法?

0 投票
1 回答
65 浏览

elixir - 如何使用 hound 获取我的文件中的测试状态?

ExUnit 提供了一些获取测试结果的方法。我不确定如何使用它https://hexdocs.pm/ex_unit/ExUnit.Test.htmlhttps://hexdocs.pm/ex_unit/ExUnit.Formatter.html

我在一个文件中有多个测试。如何在最后生成结果,例如 Test name 和 Status ?

我正在使用猎犬编写测试。提前致谢。