首页 > 解决方案 > 'serenity-bdd run' 在 Docker 中给出'“路径”参数必须是字符串类型'错误

问题描述

我有一个在命令行上正常运行的 Serenity-JS 项目。我正在尝试将其打包到 Docker 容器中以在 Azure 管道中使用,这是我们在其他项目中使用的模型。

但是,当我通过 Docker 运行项目时,测试正确执行,但生成报告文档的步骤失败并出现一个相当简洁的错误:

[test:report] > serenity-bdd run
[test:report] 
[test:report] I'm terribly sorry, but something didn't go according to plan:
[test:report] The "path" argument must be of type string. Received null

输出中没有其他内容,因此问题的根源尚不清楚。我什至不确定path这是指哪个论点。我已经深入研究了 Serenity-JS Node 模块,但我没有看到明确的罪魁祸首,我也不明白为什么它可以通过命令行工作,但不能在 Docker 中工作。任何见解将不胜感激。谢谢!

标签: dockerserenity-js

解决方案


简短的修复

安装 Java 开发工具包 - JDK

快捷方式:

在带有 Chocolatey 的 Windows 上

巧克力安装jdk8

在 Unix 或 Max 上

安装jdk8

简单的方法:

阅读并遵循 Serenity BDD 安装指南。 https://serenity-bdd.github.io/theserenitybook/latest/first-steps.html

我尝试安装较新的版本openjdk,例如 11 或 16,但这给了我在 Windows 上的问题。

原因:

serenity-js 无法启动 serenity-bdd java 模块,因为它找不到 Java。


推荐阅读