我有一个在命令行上正常运行的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中工作。任何见解都将不胜感激。谢谢!
发布于 2021-05-17 05:12:53
简短的解决办法
安装Java开发工具包- JDK
快捷方式:
在带有巧克力的Windows上
choco install jdk8
在Unix或Max上
apt安装jdk8
简单的方法:
阅读并遵循Serenity BDD安装指南。https://serenity-bdd.github.io/theserenitybook/latest/first-steps.html
我试图安装一个较新的openjdk,例如11或16,但在Windows上遇到了问题。
原因:
serenity-js无法启动serenity-bdd Java模块,因为它找不到java。
发布于 2021-05-06 00:44:04
如果后来有人遇到这个问题,我找到了解决方案:我使用的基础映像没有serenity-bdd在幕后使用的Java运行时。切换到openjdk基础镜像并手动安装我的节点依赖项解决了这个问题。
https://stackoverflow.com/questions/66995359
复制相似问题