问题标签 [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 回答
415 浏览

erlang - Erlang ct:run_test 依赖项

我尝试使用以下命令从 erl shell 运行常用测试套件:

测试套件失败并出现错误:

但是,如果我在 shell 中输入:

我可以看到依赖模块 eredis 已加载:

为什么 ct:run_test 看不到依赖模块以及如何从 erl shell 正确运行它?

0 投票
1 回答
187 浏览

erlang - Erlang init_per_group 终止 gen_server

通用测试以 .init_per_group/2启动时终止 gen_server gen_server:start_link。但是用 . 启动服务器是可以的gen_server:start

gen_server可以从 和 中的任何这些方法 (startstart_link)init_per_suite/1开始init_per_testcase/2

为什么不能用 gen_serverinit_per_group/2启动gen_server:start_link

0 投票
0 回答
130 浏览

erlang - 使用 Rebar3 如何使用 Common Test 以便将梁文件放在 _build 部分而不是测试文件夹中?

当我将 rebar3 与 Common test 一起使用时,如下所示:rebar3 ct它将我的所有代码编译(生成梁文件)到测试文件夹中。一切正常,但不太理想。我如何将它们放在 _build/test/MyApp/ebin 部分?Eunit 做得很好,但 Common Test 没有。

项目布局:

我希望梁像 eunit 一样进入 _build 部分:

我的 Common Test 日志文件夹将进入 _build/test/logs,这很酷。请让我知道我错过了什么。

0 投票
1 回答
174 浏览

erlang - 在公共测试期间找到lib目录

我的问题是,我的 Erlang 应用程序应该如何可靠地在 priv 目录中找到二进制文件,而不仅仅是在生产环境中;正确安装时,但在普通测试期间?

今天,当我将 travis-ci 配置添加到旧的 Erlang 应用程序并将其推送到 git-hub 时,我意识到它在本地工作的过程比我想象的要脆弱一些。travis-ci 构建失败了,因为它并非不合理地将我的 repo 检出到以 repo 命名的目录中,该目录的格式为 erlang-APP。我的应用程序在本地位于一个名为 APP-VSN 的目录中。

这样做的结果是,在本地运行普通测试期间调用code:lib_dir(APP)返回正确的结果,但是如果我将当前目录重命名为 erlang-APP 而不是 APP-VSN(或者只是 APP 也可以)我的本地构建失败,就像它适用于 travis-ci,因为code:lib_dir(APP)返回{error,bad_name}. 就好像将行为..添加到rebar ct.

将我的 github 存储库从 erlang-APP 重命名为 APP 解决了 travis-ci 构建失败...但是知道构建测试仅通过检出存储库的目录名称并不适合我。

0 投票
1 回答
219 浏览

erlang - Erlang - 在普通测试中立即跳过测试套件

我知道跳过测试套件的方法是:

让 init_per_suite 函数返回 {skip, reason} 值。但它会在跳过之前执行 init_per_suite 函数中的所有命令。

我想在满足条件时立即跳过测试套件。

0 投票
1 回答
630 浏览

erlang - 使用 Rebar3 Common Test 在包含文件夹中找不到 hrl 文件,但 eunit 可以

使用rebar3 eunit它可以-include("some_file.hrl")在测试中处理,但这不适用于rebar3 ct. 由于某种原因,当我使用rebar3 ct它时尝试编译我的 eunit 测试并失败,因为它找不到 eunit 测试中使用的 .hrl 文件。...can't find include file "some_file.hrl"我究竟做错了什么?为什么当我尝试运行 CT 测试时它会编译 eunit 测试?

0 投票
1 回答
56 浏览

unit-testing - Erlang Common Test:获取所有测试套件的测试运行时统计信息

我目前有一组应用程序,每个应用程序都有自己的一组测试套件。有没有办法在运行一个或多个 CT 测试套件时获得测试用例运行时?

我知道测试报告提供了测试用例运行时,但它们的格式不可用,我可以在脚本中轻松解析输出测试运行时统计信息。我希望能够获得所有测试用例运行时的一些原始数据。JSON、XML 或 CSV 都可以。我不想解析原始 HTML 来获取测试运行时。

是否有任何现有的工具(CT 钩子?)可以做这样的事情?我觉得它不应该太难,但我没有找到任何现有的软件可以做到这一点。

0 投票
1 回答
244 浏览

erlang - 使用 Common Test 测试 gen_server 模块

我有这个(非常简单的)gen_server实现:

现在我想编写一个通用测试套件来测试它——我刚开始学习这个。

...但是每次我运行(超小)套件/文件时,我都会收到一条奇怪的消息:

有什么线索吗?提前致谢!

0 投票
0 回答
33 浏览

erlang - 在 Common Test 套件中构建应用程序的配置

我遇到了 Common Test 以及我为我测试的应用程序指定配置的方式的问题。我有几个测试套件集合,其中每个测试套件集合都有一个 ct_hook 模块来设置一些东西。

我配置要测试的应用程序的方式是先调用application:load/1,然后application:set_env/3再调用application:ensure_all_started/1。对于测试套件的单个(集合),这很好用。但是,当我运行时rebar3 ct,它(自然)会连续运行多个测试套件,如果我需要配置一个将在以后运行中使用的应用程序,那么application:set_env/3如果该应用程序已经加载,那么调用就太晚了在早期套件的 ct_hook 中间接(作为依赖项 - 甚至是依赖项的依赖项):

init/2first_ct_hook

init/2second_ct_hook:

这样做的正确方法是什么?

0 投票
0 回答
35 浏览

xml - 如何将返回值添加到 cth_surefire XML 报告中?

我正在使用 erlangOTP 和通用测试框架

XML 测试报告是使用通用测试挂钩 cth_surefire生成的。

每个测试用例都以返回一个自定义的字符串结束,如下所示:

然而,XML 报告不包括Result上述内容。

如何将Result值添加到 cth_surefire XML 报告?