问题标签 [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.
erlang - Erlang ct:run_test 依赖项
我尝试使用以下命令从 erl shell 运行常用测试套件:
测试套件失败并出现错误:
但是,如果我在 shell 中输入:
我可以看到依赖模块 eredis 已加载:
为什么 ct:run_test 看不到依赖模块以及如何从 erl shell 正确运行它?
erlang - Erlang init_per_group 终止 gen_server
通用测试以 .init_per_group/2
启动时终止 gen_server gen_server:start_link
。但是用 . 启动服务器是可以的gen_server:start
。
gen_server
可以从 和 中的任何这些方法 (start
和start_link
)init_per_suite/1
开始init_per_testcase/2
。
为什么不能用 gen_serverinit_per_group/2
启动gen_server:start_link
?
erlang - 使用 Rebar3 如何使用 Common Test 以便将梁文件放在 _build 部分而不是测试文件夹中?
当我将 rebar3 与 Common test 一起使用时,如下所示:rebar3 ct
它将我的所有代码编译(生成梁文件)到测试文件夹中。一切正常,但不太理想。我如何将它们放在 _build/test/MyApp/ebin 部分?Eunit 做得很好,但 Common Test 没有。
项目布局:
我希望梁像 eunit 一样进入 _build 部分:
我的 Common Test 日志文件夹将进入 _build/test/logs,这很酷。请让我知道我错过了什么。
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 构建失败...但是知道构建测试仅通过检出存储库的目录名称并不适合我。
erlang - Erlang - 在普通测试中立即跳过测试套件
我知道跳过测试套件的方法是:
让 init_per_suite 函数返回 {skip, reason} 值。但它会在跳过之前执行 init_per_suite 函数中的所有命令。
我想在满足条件时立即跳过测试套件。
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 测试?
unit-testing - Erlang Common Test:获取所有测试套件的测试运行时统计信息
我目前有一组应用程序,每个应用程序都有自己的一组测试套件。有没有办法在运行一个或多个 CT 测试套件时获得测试用例运行时?
我知道测试报告提供了测试用例运行时,但它们的格式不可用,我可以在脚本中轻松解析输出测试运行时统计信息。我希望能够获得所有测试用例运行时的一些原始数据。JSON、XML 或 CSV 都可以。我不想解析原始 HTML 来获取测试运行时。
是否有任何现有的工具(CT 钩子?)可以做这样的事情?我觉得它不应该太难,但我没有找到任何现有的软件可以做到这一点。
erlang - 使用 Common Test 测试 gen_server 模块
我有这个(非常简单的)gen_server
实现:
现在我想编写一个通用测试套件来测试它——我刚开始学习这个。
...但是每次我运行(超小)套件/文件时,我都会收到一条奇怪的消息:
有什么线索吗?提前致谢!
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/2
在first_ct_hook
:
init/2
在
second_ct_hook
:
这样做的正确方法是什么?