问题标签 [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 投票
2 回答
678 浏览

erlang - 如何将“rebar ct”与两个应用程序节点一起使用?

rebar用来编译我的应用程序。实际上,它是两个应用程序:

...B取决于A. 这在apps/B/src/B.app.src. 但是,当我尝试运行时rebar ct,它无法测试B,报告它找不到A.app

在详细模式下运行rebar ct表明它正在将代码搜索路径 ( -pa) 设置为 include apps/B/ebin, and deps/foo/ebin,deps/bar/ebin等。

包括apps/A/ebin.

如何使用 Common Test 测试由多个应用程序组成的 Erlang “应用程序”?

0 投票
2 回答
102 浏览

erlang - 处理 Common Test 套件中的共享助手?

我有一个包含一堆不同应用程序的 Erlang 项目。我正在使用Common Test进行一些测试。

我开始在这些套件中看到重复的实用程序代码。

我应该把我的实用程序代码放在哪里,以便它可以在两个套件之间共享?

我考虑过添加另一个应用程序:

...但是如果不使被测应用程序依赖于此(或者我可以吗?),我无法使 CT 套件依赖于此。我不想这样做,因为test_stuff只有在测试时才需要。

我的eunit测试有类似的问题,无论是在应用程序之间(apps/foo/testvs. ),还是在同一应用程序( vs )apps/bar/test中的 eunit 和 CT 测试之间使用类似的功能。我也可以对这种情况使用相同的解决方案吗?或者我需要问另一个问题吗?apps/bar/suitesapps/bar/test

0 投票
1 回答
98 浏览

erlang - 在 Erlang 版本中包含常见测试

我有一个用 Erlang 编写的项目(以及由 rebar 生成的版本),我想在尽可能接近部署环境的环境中进行集成测试。

该项目引入了一些其他 Erlang 应用程序作为依赖项。这些应用程序之一在 test/. 我希望在发行版中运行这些测试。

有没有办法将通用测试包含在生成的版本中,并以某种方式在目标实例上运行它们?

我不想在 deps/ 中的应用程序上运行这些测试,而是在实际版本本身上运行。

谢谢!

0 投票
1 回答
248 浏览

erlang - 如何为 Erlang/OTP 构建和组织测试?

我从 python 世界来到 Erlang/OTP,我正在使用unittest库。典型的测试环境将由一些TestSuite针对整个应用程序和TestCases应用程序子包中不同模块的测试方法提供。

我在 Erlang 上的第一个应用程序是基于牛仔的 Web 应用程序。它具有牛仔框架及其行为所需的一些模块以及一些我的自定义模块,比如说:parsers.erl、、、。 encoders.erlfetchers.erl

在开发之初,我在这些模块中编写测试(在方法method_name _test 中),然后使用eunit. 但对我来说,这有点不方便。在一周左右的时间里,我接触到了 commont_test 框架。至于来自 python 世界的新人——CT 及其套件、分组、设置、配置、执行顺序模型看起来非常熟悉。

考虑我的应用程序 - 编写测试套件的正确方法是什么?我应该为不同的模块准备单独的套件(对我来说这会产生一些开销)还是为应用程序引入单个测试套件并在不同的组中为单独的模块放置测试用例?阅读有关在真实世界 Erlang 应用程序中组织测试的信息会很棒。

0 投票
1 回答
390 浏览

erlang - erlang常见测试:如何启动iconv应用程序?

在我的应用程序中,我正在使用erlang-iconv 的这个实现。简单的测试套件:

尝试运行此套件时:

这个错误很明显,因为 erlang-iconv 依赖于 C 驱动器priv_dir

如何欺骗 erlang-iconv 并强制它在其他位置查找 C 驱动程序(我项目的 deps 目录中 iconv 的 priv_dir 的绝对路径)?

0 投票
1 回答
77 浏览

terminal - 控制台上的 Erlang Common Test 语法高亮显示?

有没有办法在 Common Test 打印到控制台的测试结果上突出显示语法?我来自 Ruby 背景,我喜欢 Rspec 以不同方式突出显示失败和成功消息的方式。CT有这个选项吗?

提前致谢!

0 投票
4 回答
421 浏览

unit-testing - 为什么 Common Test 不存在第三方断言库?

在编写测试时,我发现自己编写了各种小的辅助函数来进行断言。我搜索了一个断言库,但没有找到任何东西。在我的测试中,我经常有这样的事情:

我最终不得不编写一个完整的函数来检查 my_app 是否是一个注册进程。如果我可以调用类似的东西会更好assertion:value_in_list(my_app, registered())or assertion:is_registered(my_app)

我来自 Ruby 背景,所以我讨厌为了做出一些断言而不得不用实用函数把我的测试弄得一团糟。如果我能这样做会更干净:

所以我的问题是:

  • 为什么 Common Test 没有断言库?
  • 是否有可能构建一个在所有测试期间都可以访问的第三方库?
0 投票
2 回答
800 浏览

makefile - 在 Common Test 测试运行期间较大的调用失败

我决定在我的 Erlang 项目中设置 lager。我正在使用 erlang.mk,所以我添加了

到我的 Makefile。我可以毫无错误地运行make all和编译模块。我还可以启动erl控制台并使用 lager 运行包含模块的应用程序。在控制台会话期间不会生成错误,并且会记录更多消息。似乎一切都很好(这是我第一次使用啤酒)。但是,当我运行 Common Test 时,较大的调用失败:

10:11:17.174 [error] CRASH REPORT Process <0.238.0> with 2 neighbours exited with reason: call to undefined function lager:info("Params: ~p", [[]]) in gen_server:init_it/6 line 328

由于看起来我正在测试的模块已经正确编译,我认为这是一个较大的模块不存在的问题。但是,如果我添加这个:

上面第一个啤酒调用成功,打印啤酒的模块信息。我假设我正在进行的日志记录调用正在利用一些解析转换魔法来工作,而这在我的 Common Test 运行期间不存在。

任何建议都非常感谢!

0 投票
2 回答
159 浏览

erlang - 为 erlang 应用程序生成测试用例的最佳方法是什么?

现在我正在为在 Erlang 上编写应用程序创建测试用例。我使用通用测试。这个工具很有用,适合我。但大多数测试具有相同的结构,有时包含相同的代码。所以,我有很多“复制/粘贴”。这样不好。想优化我的工作。可能有人遇到了同样的问题并找到了解决方案。请帮我!

0 投票
1 回答
146 浏览

erlang - Erlang 通用测试全局注册名

我正在使用通用测试框架对基于牛仔的服务进行一些 RPC 测试。

该服务依赖于我在另一个节点上托管的应用程序。在应用程序代码中,我连接到该节点。

常用测试:ct:print(default, 50, "~p", [nodes()])。返回 [mynode@localhost]

但是 ct:print(default, 50, "~p", [global:registered_named()])。返回 []

我按照此处列出的步骤进行了全局注册进程未注册

但这似乎没有任何效果。如果我启动一个 shell,手动连接,列出节点,然后执行我的远程功能,一切正常。普通测试是否有一些独特的东西会阻止它起作用?远程节点是否必须由通用测试框架管理?