自定义报告,用Java写一个html文件

因为testng不满足我们的展示,所以我们会自己定义一个报告,实施步骤是,把静态页面做好后,放在Java项目中,其实和生成一个日志文件类似,只是该了后缀,Java中需要使用到PrintStream,案例如下,我在静态页面中制作的静态网页

image

在代码中实现如下,就是把所有内容搬移过来

package until;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class tables {
	 public static void main(String[] args) {
		 StringBuilder sb = new StringBuilder();
		 PrintStream printStream = null ;
		 try {
			 printStream= new PrintStream(new FileOutputStream("report.html"));//路径默认在项目根目录下
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} 
			sb.append("<html>"); 
			sb.append("<head>"); 
			sb.append("<title>测试报告的样式</title>"); 
			sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"); 
		    //样式内容
			sb.append("<style type=\"text/css\">"); 
			sb.append(".tablename table th {background:#8FBC8F}");
			sb.append(".tablename table tr{ background:#FAEBD7;text-align:center}");		
			sb.append("</style></head>"); 
			//样式结尾
			//主体部分一个div
			sb.append("<div class=\"tablename\">"); 
			//一个table
			sb.append("<table width=\"500\"  height=\"100\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse:collapse;\">");
			sb.append("<th>用例集/测试方法</th><th>总计</th><th>通过</th><th>失败</th><th>通过率</th><th>详细</th><tr>");
			
			sb.append("<td>test集合</td><td>10</td><td>8</td><td>2</td><td>80%</td> <td>点我查看详情</td></tr>");
			
			sb.append("<th>测试方法</th><th>测试项</th><th>测试模块</th><th>测试描述</th><th>验证点</th>");
			sb.append("<tr><td>"+12333+"</td><td>变量2</td><td>变量3</td><td>变量4</td><td>变量5</td>");
			sb.append("</tr></table>");
			//table与html结尾
			sb.append("</div></body></html>"); 
		  
		   printStream.println(sb.toString()); 
	}
	 }

  

执行完成后,生成的报告,

image

双击打开查看样式

image

转载于:https://www.cnblogs.com/chongyou/p/7598138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用第三方库将Markdown转换为HTML时,一般都会有一些默认的样式。如果你想要自定义样式,可以通过修改CSS样式表来实现。 以commonmark-java为例,它提供了一个默认的CSS样式表,可以在输出HTML文件中引用该样式表。如果你想要自定义样式,可以编自己的CSS样式表,并将其引用到HTML文件中。 以下是一个例子,演示如何使用自定义CSS样式表: ```java import org.commonmark.node.*; import org.commonmark.parser.*; import org.commonmark.renderer.html.HtmlRenderer; import java.io.*; public class MarkdownToHtml { public static void main(String[] args) throws IOException { // 读取Markdown文件 String markdown = readFile("input.md"); // 解析Markdown文件 Parser parser = Parser.builder().build(); Node document = parser.parse(markdown); // 渲染为HTML文件 HtmlRenderer renderer = HtmlRenderer.builder() .softbreak("<br/>") // 设置换行符 .attributeProviderFactory(context -> new CustomAttributeProvider()) // 设置自定义属性 .build(); String html = renderer.render(document); // 引用自定义CSS样式表 String css = readFile("style.css"); html = "<html><head><style>" + css + "</style></head><body>" + html + "</body></html>"; // HTML文件 writeFile("output.html", html); } private static String readFile(String path) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(path)); StringBuilder stringBuilder = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { stringBuilder.append(line).append("\n"); } reader.close(); return stringBuilder.toString(); } private static void writeFile(String path, String content) throws IOException { BufferedWriter writer = new BufferedWriter(new FileWriter(path)); writer.write(content); writer.close(); } private static class CustomAttributeProvider implements AttributeProvider { @Override public void setAttributes(Node node, String tagName, Map<String, String> attributes) { // 添加自定义class属性 if (node instanceof Heading) { attributes.put("class", "my-heading"); } else if (node instanceof Code) { attributes.put("class", "my-code"); } } } } ``` 这段代码会将当前目录下的`input.md`文件转换为HTML,并输出到`output.html`文件中。同时,它会读取当前目录下的`style.css`文件,将其内容作为样式表引用到HTML文件中。在CSS样式表中,你可以编自己的样式规则,比如修改标题的颜色、字体大小等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值