在 Common Test 测试运行期间,Lager 调用失败

2024-06-25

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

ERLC_OPTS = +'{parse_transform, lager_transform}' 

到我的 Makefile。我可以跑make all并编译模块,没有错误。我也可以开始一个erl控制台并使用 lager 运行包含模块的应用程序。在控制台会话期间不会生成任何错误,并且会记录更多消息。似乎一切都很好(这是我第一次使用啤酒)。但是,当我运行通用测试时,更大的调用失败:

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

由于我正在测试的模块似乎已正确编译,因此我认为这是较大模块不存在的问题。但是,如果我添加以下内容:

erlang:display(lager:module_info()),

在第一个 lager 调用之上,它成功了,打印了 lager 的模块信息。我假设我正在进行的日志记录调用正在利用一些解析转换魔法来工作,但这在我的公共测试运行期间不存在。

任何建议将不胜感激!


结果我的 Makefile 中有一个拼写错误,但在这个过程中我学到了很多关于 erlang.mk 的知识。 erlang.mk 正在寻找具有不同名称的变量。

我最初在我的 Makefile 中是这样的:

ERLC_OPTS = +'{parse_transform, lager_transform}'

但 erlang.mk 在测试模块之前并不使用 ERLC_OPTS 来编译模块。它总是在通用测试套件之前重新编译。为了让模块使用解析转换进行编译以进行测试,我需要这样做:

# Compile flags
ERLC_COMPILE_OPTS= +'{parse_transform, lager_transform}'

# Use the same settings for compiling releases as well as for testing
ERLC_OPTS= $(ERLC_COMPILE_OPTS)
TEST_ERLC_OPTS= $(ERLC_COMPILE_OPTS)

这可确保在测试期间使用完全相同的设置编译应用程序源代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Common Test 测试运行期间,Lager 调用失败 的相关文章

  • make:无需为“all”执行任何操作

    我正在通过一个eg pgm 来创建一个make 文件 http mrbook org tutorials make http mrbook org tutorials make 我的文件夹eg make creation包含以下文件 des
  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • Erlang 中的函数链

    最好创建像 Active Record 或 Hibernate 这样的 ORM 它应该像这样处理链式查询 User User new for login stackoverflow admin for password 1984 load
  • 控制 make 命令的输出不那么冗长,不要回显每个命令

    目前 我正在使用 Makefile 来跟踪项目的所有依赖项和编译 问题是make只是输出它正在执行的所有操作 这使得很难发现 甚至读取 更重要的信息 例如编译器警告 有没有办法控制终端上显示哪些信息 我知道有一个 s沉默的选项make 但这
  • 在 Erlang 中是否有一种惯用的方法来对函数参数进行排序?

    似乎列表模块中的不一致 例如 split 将数字作为第一个参数 将列表作为第二个参数 而 sublists 将列表作为第一个参数 将 len 作为第二个参数 好的 讲一下我记得的一些历史以及我的风格背后的一些原则 正如克里斯蒂安所说 图书馆
  • 从 GNU Makefile 调用 `command -v find`

    我使用 shell bash 但我需要可移植性 和 GNU Makefile 我有这个代码 check commands command v find gt dev null command v asdf gt dev null 正如假设的
  • Makefile 和跨平台开发

    我一直在试图弄清楚如何创建一个可以为所有主要操作系统编译的 C 程序 我考虑过使用 makefile 所以我只需要更改目标操作系统 但我有一些问题 我的第一个问题是 我不知道如何更改目标操作系统 以便我可以在一个操作系统上编译 但在所有操作
  • 链接 C 代码时如何判断符号的定义位置

    我面临着链接中特定符号的未定义参考问题 error undefined reference to g queue pop nth 我正在 LOP 和 ARM 平台上工作 我们在两个平台上使用相同的环境 我们的 ARM 构建可以毫无问题地链接
  • Makefile:如何正确包含头文件及其目录?

    我有以下 makefile CC g INC DIR StdCUtil CFLAGS c Wall I INC DIR DEPS split h all Lock o DBC o Trace o o cpp DEPS CC o lt CFL
  • 从 makefile 内部传递命令行参数

    我有一个 makefile 我试图从中调用一个可执行文件 该可执行文件需要 5 个参数 我如何从 makefile 传递这些参数 这样做不起作用 run exe arg1 somevalue arg2 somevalue arg3 some
  • 如何处理GNU make中的子make错误?

    我在 Makefile GNU 中使用子 make 但每当子 make 失败时 主 make 都会继续成功运行 我希望每当我的子 make 失败时我的主 Makefile 都会失败 我怎么做 all pushd STA DIR make c
  • 用于编译和运行 C++ 的 bash 脚本

    我正在尝试进入 C 但必须使用冗长的命令通过命令行运行东西很烦人 所以我想制作一个 bash 脚本来简化过程并运行这些命令 bin bash if 1 start then cd CCPP cd HelloWorld g Wall W We
  • 获取ERLANG中的最长公共子序列

    我是这个 ERLANG 的新手 我了解基础知识 这就像计划 但范围更广 我知道如何创建一个函数 但在创建一个获取最长公共子序列的函数时遇到问题 lcs str1 str2 是一个接受两个字符串并输出一个整数的函数 lcs algorithm
  • 生成带有完整路径的 gcc 依赖项

    我有一个简单的项目 看起来像这样 build file1 o one file1 o file2 o depend Makefile src file1 cpp one file1 cpp file2 cpp Makefile 是这样的 G
  • 什么是 Makefile.am 和 Makefile.in?

    这两个文件多出现在开源项目中 它们的用途是什么 它们如何工作 Makefile am是程序员定义的文件 由automake生成Makefile in文件 am代表autom阿克 这configure通常在源 tarball 中看到的脚本将使
  • Erlang:到 Python 实例的端口没有响应

    我正在尝试通过 Erlang 端口与外部 python 进程进行通信 首先 打开一个端口 然后通过 stdin 将消息发送到外部进程 我期待在进程的标准输出上得到相应的答复 我的尝试如下所示 open a port Port open po
  • 从 make 文件中禁用 make 内置规则和变量

    我想根据传递禁用内置规则和变量 r and R options http www gnu org software make manual make html Options Summary从 make 文件内部到 GNU make 也欢迎
  • 我可以获得当前加载的所有模块的列表吗?

    module info 会告诉我很多关于模块的信息 前提是我知道它的名称 我需要找到名称符合特定条件的所有模块 例如 companyname creator serialnumber 我记得在 erlang 存储此信息的地方读过 但我正在寻
  • 如何将宏定义从“make”命令行参数(-D)传递到C源代码?

    我通常使用以下选项将宏定义从 make command line 传递到 makefile D名称 值 该定义可在 makefile 中访问 我还使用类似的编译器选项将宏定义从 makefile 传递到 源代码 Dname value 许多
  • 如何在 Erlang 中编写“a==b ? X : Y”,换句话说,如何编写 C 风格的三元运算符?

    在 Erlang 中是否有好的方法来编写这样的代码 A B X Y 下面是 ruby 风格的代码 这也称为三元运算符 https en wikipedia org wiki Ternary operation Computer scienc

随机推荐

  • 如何在循环中添加 Thymeleaf 变量的值并在完成循环后显示最终值

    我正在设计产品账单 我想使用表格在 thymeleaf 模板中显示所有产品 最后 在循环外我想显示 thymeleaf 中所有产品的价格总和 我如何定义全局变量并执行它 table tr td td td td td Paid td td
  • NodeJS MySQL - 如何知道连接是否释放

    我正在开发 NodeJS MySQL Web API 我在用mysql https www npmjs com package mysqlnpm 模块 我想知道连接是否已释放 是否有任何函数或变量 喜欢 if connection isRe
  • 在 Three.js 中设置 2D 视图

    我是新来的three js我正在尝试使用这些 3D 工具建立 2D 可视化 针对各种分层精灵 我想要一些指导PerspectiveCamera 论据和camera position set 论据 我已经朝着正确的方向轻推了这个答案 http
  • C - printf("\a") 不会发出警报[重复]

    这个问题在这里已经有答案了 这是我的 C 代码 include
  • 在 C++ 中按大小零分配内存?

    int a 10 int p new int 0 p a cout lt lt p lt lt endl 在C 中 如果分配内存大小为零会发生什么 分配后 我得到有效的内存指针 并打印有效的数字 但我认为 new 运算符应该返回类似 FAI
  • 如何限制 SQLite / MySQL 中的列值

    我想限制表中的列值 例如 列值只能是car or bike or van 我的问题是如何在 SQL 中实现这一点 在数据库端执行此操作是一个好主意还是应该让应用程序限制输入 我还打算在将来添加或删除更多值 例如 truck 我使用的数据库类
  • Mac 上的 FFMPEG 和 PHP 不起作用

    我需要你的帮助 目前我使用 Mac OS X 10 9 4 和 xampp apache 1 8 3 3 我需要使用ffmpeg 版本3 2 通过php转换视频文件exec 但我无法让它发挥作用 我做了一些运行终端命令行的测试 系统运行正常
  • ASP.NET MVC 3 中未经身份验证用户的缓存主页

    我的网站有一个主页 我想为匿名用户缓存该页面 并将其设置为经过身份验证的用户的 私有 以便他们将其保存在自己的计算机上 而不是其他地方 因此 如果用户是匿名的 我想将页面保存在服务器缓存中 并使用以下命令保存在浏览器缓存中Cache con
  • 无需打开即可打印 PDF

    我想要构建的是 通过单击按钮 我想触发 PDF 文件的打印 但不打开它 Print PDF Click gt printPdf pdfUrl 我第一次尝试的方法是使用 iframe var iframe null This is suppo
  • 如何使用 BoW 正确训练 OpenCV SVM

    我无法训练 SVM 识别我的对象 我正在尝试使用 SURF Bag Of Words SVM 来做到这一点 我的问题是分类器没有检测到任何东西 所有结果都是0 这是我的代码 Ptr
  • 完美批量转发参数

    我有一个小的 python 脚本 args py import sys print sys argv 我怎样才能写一个 bat将所有参数转发给该脚本的包装文件 为了从测试中消除我的 shell 我将调用它 import subprocess
  • Tensorflow ValueError:形状 (?, 1) 和 (?,) 不兼容

    当我用 3 个 lstm 层运行代码时 我遇到了这个错误 不知道如何修复它 任何人都可以帮忙 这里 MAX SEQUENCE LENGTH 250 运行成本函数后 我收到错误 ValueError 形状 1 和 不兼容 Generate a
  • 让 ISSkin 与最新的 Inno Setup Unicode 配合使用

    我是第一次尝试ISSkin http isskin codejock com 使用 Inno 设置 我想尝试一下黑色风格 所以我尝试了他们的示例 Setup AppName ISSkin Example AppVersion 1 0 0 2
  • 如何在 Windows 窗体应用程序中跟踪 C# 中两次按钮单击之间的时间?

    我已经用 C 创建了一个 Windows 窗体应用程序 其中接受用户的输入 我想计算用户在两次提交之间花费的时间 我该怎么做 Use 跑表 http msdn microsoft com en us library system diagn
  • 在 WebAPI OData 请求中包含相关实体

    有没有办法在 OData 请求中包含相关实体 例如 我有一个 Person 实体和一个 Task 实体 这种关系是一对多的 一个人有很多任务 如果我使用 OData 请求查询数据 odata Person 要获取所有 Person 实体 返
  • Mac OS X 10.7 Lion 上的 AVFoundation 核心动画问题

    在 Mac OS X 10 7 中 Apple 引入了 AVFoundation 我正在尝试生成一个包含动画形状的简单快速电影 问题是核心动画没有渲染 我最终只有一个空白的 黑色 视频 下面是我使用的代码 我尝试了很多变体 但遗憾的是它们都
  • primefaces 面包屑无法与 ui:repeat 一起使用

    我无法渲染面包屑对素面的控制 我正在使用 ui repeat 动态构建面包屑 当我把它包进里面的那一刻p 面包屑标签 我看不到页面上的控件 以下代码是我在 xhtml 中使用的
  • 将 Sage Line 50 与 Windows 应用程序集成

    我必须将 C Windows 应用程序与 Sage Line 50 集成 将所有发票详细信息从应用程序发送到 Sage 我在 Google 上搜索 大多数地方都说要集成 Sage Line 50 我们需要使用 Sage 开发套件 SDK 但
  • 使用 Chrome 扩展 chrome.storage.local 实现无限存储?

    The docs https developer chrome com docs extensions reference storage property local对于 Chrome 扩展chrome storage local sta
  • 在 Common Test 测试运行期间,Lager 调用失败

    我决定在我的 Erlang 项目中设置 lager 我正在使用 erlang mk 所以我添加了 ERLC OPTS parse transform lager transform 到我的 Makefile 我可以跑make all并编译模