如何通过JUnit Testrunner在Concordion测试生成的HTML中添加图片?
解决方案:将同目录图片加入Concordion测试输出HTML
当然可行啦!这在Concordion结合Testrunner的测试场景里是完全能实现的,下面给你梳理下具体的操作步骤:
第一步:确保图片位置符合资源识别逻辑
你的图片和testFixture.java、test.html放在同一目录是没问题的,Concordion默认会扫描测试类与对应HTML文件所在目录的静态资源。如果是Maven/Gradle项目,记得把这个目录标记为测试资源目录(比如Maven的src/test/java或src/test/resources下的对应包路径),这样Testrunner才能在运行时识别并复制这些资源。第二步:在test.html中正确引用图片
直接用标准<img>标签,通过相对路径引用即可。比如你的图片叫test-screenshot.png,代码如下:<img src="test-screenshot.png" alt="测试场景截图">因为图片和HTML文件同目录,直接写文件名就可以,不用复杂路径。
第三步:配置Testrunner确保资源复制到输出目录
- 如果用Maven的
concordion:run插件,在pom.xml的build配置里添加资源包含规则:<build> <testResources> <testResource> <directory>src/test/java</directory> <includes> <include>**/*.html</include> <include>**/*.png</include> <!-- 加入图片格式匹配 --> <include>**/*.jpg</include> </includes> </testResource> </testResources> </build> - 如果在Eclipse中直接运行Testrunner,要在Run Configuration的Classpath标签里,把图片所在目录添加为“User Entries”;或者在项目Build Path设置中,将该目录标记为“Test Source Folder”,这样Eclipse运行测试时会自动同步资源到输出目录。
- 如果用Maven的
第四步:验证结果
运行testFixture.java后,打开输出目录(比如Maven的target/concordion或Eclipse的target/surefire-reports)里的生成HTML,检查图片是否正常显示,同时确认输出目录里已经存在对应的图片文件。
小提示:如果图片无法显示,先排查这几点:路径是否写错(注意大小写,尤其是Linux/macOS系统)、输出目录里有没有复制过来的图片、Eclipse的Build Automatically是否开启(确保资源同步)。
内容的提问来源于stack exchange,提问作者guguli
相关产品推荐
相关产品推荐

