【问题标题】:Unit Testing on Nginx custom ModulesNginx 自定义模块的单元测试
【发布时间】:2021-09-23 05:48:32
【问题描述】:

我想找到一种方法对我的自定义 nginx 模块进行单元测试,但失败了。有人可以提供一些建议吗?我曾经找到过 Test::Nginx 框架,但它可以作为系统测试。有人告诉我,我可以使用 ngx_lua_module 通过 FFI 的方式暴露 nginx 模块中的 C 函数。有谁知道该怎么做?

【问题讨论】:

  • 你能详细说明“但它可以作为系统测试”吗? “系统测试”是什么意思?
  • 它将测试整个模块的能力,而不是模块中的特定功能或C结构。

标签: unit-testing nginx


【解决方案1】:

您可以编译该自定义模块as a library,然后使用支持它的任何可用语言的 FFI 加载该函数,例如Python with Ctypes 或直接在 C 中通过链接该新库,然后使用其符号(例如函数)来断言某些行为/返回值。

【讨论】:

  • 感谢您的回答,虽然nginx模块中的函数或C结构可能需要nginx环境,我不知道如何确保它在没有nginx的情况下成功运行。
  • @LeiLiu 如果您至少#include 任何与 nginx 相关的模块或任何其他外部模块并使用它,它肯定是必需的,并且不会作为独立代码工作。链接到您使用的库,然后它将根据链接类型工作,即如果动态它会查找例如nginx 的.so 文件,如果是静态的,它可以单独工作。
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 2011-11-05
  • 2018-02-25
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
相关资源
最近更新 更多