问题标签 [common-test]

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

erlang - 如何从 ct 测试中调试或获取详细输出?

我正在运行 ct 测试,但我的设置失败,因此跳过了测试套件。 *** FAILED {test_suite_name_here_SUITE,init_per_suite} *** 我的问题是如何调试测试套件的运行?其次,如何从测试运行中获得详细的输出,告诉我出了什么问题。

0 投票
0 回答
89 浏览

erlang - 如何在 common_test 中启动 ct_logs

我想在我的测试套件使用中打印一些消息ct:print,但是当我运行测试套件使用>rebar3 ct时,控制台会发出警告ct_logs not started,然后打印错误报告。

错误报告如下:

如何启动 ct_logs 以在测试套件中打印消息?

0 投票
1 回答
303 浏览

erlang - 如何从 Erlang 通用测试套件登录到 stdout 或 stderr?

我正在使用 common_test,只想将值记录到 stdout 或 stderr。

如何????

我试过了:

  • ct:评论
  • ct:日志
  • io:格式

最先进的技术似乎是手动梳理html文件。但是我在服务器上,除了我的日志行,我什么都不关心,我只想要标准输出。而且我在编写测试时从不想查看 HTML 文件,所以关于如何避免这种情况的建议通常会非常有帮助。

0 投票
1 回答
95 浏览

erlang - 在 init_per_suite 中创建的命名 gen_server 进程在测试中不存在

我正在学习 erlang,并且我创建了一个cache_server实现gen_server behaviour.

该模块负责创建ets tables并具有用于插入、查找等的 api。

我想为模块制作测试套件,并在一组测试中作为序列运行插入和查找的测试用例,因为第一个函数填充表和其他搜索插入的键。

我试图调用套件cache_server:start_link([])init_per_suite钩子函数,但在测试用例cache_server中,当我调用registered()函数时我看不到我的进程。

我得到

{noproc,{gen_server,call,[cache_server,{lookup,numbers,1}]}}

错误。

我还尝试将调用cache_server:start_link()从 init_per_suite 移至第一个测试用例,但在随后的测试用例中,该过程变得不可用。

当我使用 rebar3 shell 手动测试我的代码时,一切都按预期工作。

是否可以在通用测试测试套件中的测试用例之间共享一个命名的 gen_server 进程?

0 投票
2 回答
211 浏览

erlang - 原因:在 erl 控制台 [Erlang] 中运行常见测试时 undef

我正在运行应用程序,并在交互式控制台中尝试运行位于 test/common 目录中的通用测试套件:

但我得到一堆错误:

并且所有测试都失败了。我试图从 linux shell 运行它们

或像这样:

结果相同。

但是当我使用 rebar 运行它们时(第二个版本,不是 rebar3)

一切正常,测试通过。但是编译和启动应用程序需要太多时间。

在 rebar.config 我有:

在 test/common/app_ct.spec 我有:

如何使用 ct:run("test/common") 从 erl 控制台运行测试?

我的目标是能够单独重新编译单个测试文件并从工作应用程序控制台运行测试,而无需停止和重新编译所有应用程序。

我重新编译单个测试模块没有这样的问题:

但在那之后我仍然无法运行测试。

0 投票
1 回答
77 浏览

erlang - 在不通过通用测试的情况下杀死 gen_server

我实现了一个故意崩溃的模块(以测试另一个模块的功能,该模块正在监视它)。问题是,当这个 gen_server 崩溃时,它也会导致通用测试失败。我尝试过使用 try/catch 和设置process_flag(trap_exit, true),但似乎没有任何效果。

以下是一些相关代码:

和常见的测试:

以及来自 ct 的结果错误:

关于如何在不通过常见测试的情况下获得此功能的任何想法?