css - 如何测试 CSS 解析器?

标签 css testing parsing code-coverage

我正在编写一个解析器来解析 CSS。

我首先修改 CSS reference grammar , 使用 3rd-party parser generator tool 支持的语法和词法分析器语法我正在使用。

我认为我已经完成了语法编码:解析器生成器现在能够为我的语法生成状态转换表。

结果(解析器生成器的输出)大约是 116 条“规则”,对应于 switch 语句中的 116 种情况。这些规则/开关语句的示例是:

  1. 样式表以指定字符集开始
  2. 样式表开始时未指定字符集:
  3. 样式表为空
  4. 样式表以空格开头
  5. ...等...

解析器生成器已经为我完成了所有它能做的,现在我开始(手工)编写 switch 语句的各种情况,这将构建我认为人们称之为“抽象语法树”的东西。

我的问题是关于如何测试这个。我认为我想要的是一组 CSS 文件,这些文件可以练习各种组合和可能性:例如一个指定字符集的 CSS 文件;另一个没有指定字符集的文件;等

  • 是否有一种通用方法可以针对任意语法或规则集自动生成这组输入数据?

  • 或者,是否有一组特别的 CSS 文件,其目的是涵盖标准 CSS 语法允许的组合和可能性?

如果我做错了,也请随时发表评论。

目前我不需要:

  • 用于测试处理非法输入(即不符合语法的文件)的文件

  • 测试各种浏览器如何根据它们对 CSS 的解析呈现

最佳答案

Microsoft 对 IE8 是否符合 CSS 规范进行了一组数千个 CSS 测试。 http://samples.msdn.microsoft.com/ietestcenter/css.htm

虽然他们专注于测试浏览器合规性,但您可能可以调整它们。

还有较旧的 W3C 测试套件,它们并不完整,但可能会满足您的目的: http://www.w3.org/Style/CSS/Test/

关于css - 如何测试 CSS 解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088180/

相关文章:

javascript - CSS 过渡 JS 功能不起作用

CSS 创建一个 menu-div-box?

Laravel 测试不会在每次测试后回滚事务

iphone - 在 iPhone 中将日期格式更改为特殊格式

c - 在 C 中解析 CSV 文件

css - CSS中文档树的操作?

css - 使用 Wordpress 页面作为样式表?

javascript - 测试驱动的 JavaScript、Jasmine 和生产代码

iphone - 如何将我的 iPhone 应用程序的调试版本安装到我的 iPhone 上?

php - 需要有关使用 PHP 解析 html 表的建议