有CSS语法测试套件吗?

jdm*_*jdm 7 css testing

我正在编写一个自定义CSS解析器,并希望使用它来设置我的应用程序(而不是HTML)中的图形元素.我想确保当涉及选择器的优先级,"级联"等时,这符合通常的CSS行为.

我可以在这个项目中使用全面的CSS测试套件吗?

我的CSS具有大多数常规语法功能(例如匹配"标签"名称,ID,类,伪类),并且将与HTML的CSS共享许多格式化选项,但也有不同的格式选项,适用于"文档"类型我是造型.

我一直在寻找一个CSS测试套件来检查我的实现,但是我能找到的唯一一个,比如W3C测试套件,主要关注文档的可视化表示.我正在寻找机器可读或易于适应的东西,并运用CSS引擎而不是布局引擎.像(伪测试规范):

Stylesheet
    blah.blub { color: red; }
    .blub { color: blue; }

+ Document
    <blah class="blub" />

=> Expected result:
    <blah class="blub" style="color: red" />
Run Code Online (Sandbox Code Playgroud)

要么

assert selector "#blub" matches element "moo#blub"
assert selector "blah#blub" does not match element "moo#blub"
...
Run Code Online (Sandbox Code Playgroud)

我还想测试CSS shorthands的行为(例如linevs line-color),在我实现它们与HTML相同的情况下.例如

line: 1px solid blue;
line-color: red;
Run Code Online (Sandbox Code Playgroud)

得到"1px红色"线.有任何想法吗?

Jon*_*son 1

我怀疑是否有一个仅适用于 CSS 的 css 选择器测试套件。由于 CSS 被开发为一种配套技术(并不是说它不能其他地方使用,但它并不常见),测试套件专注于这种关系,并且通常在浏览器中运行,例如这个

CSS 选择器的通用测试套件只不过是一个语法检查器。除非样式被应用到某些东西上,否则你将无法看到 CSS 解析器是否正常工作,对吗?

但是上面的套件为不同的 CSS3 选择器(包括旧版本,因为它们仍然是 CSS3 的一部分)提供了大约 500 个测试,您至少应该能够将其用作您的实现的规范。

如果您使用外部库来处理 HTML,您可以插入 CSS 解析器并使用现有的 HTML/CSS 套件来测试解析器引擎。但这可能工作量太大了?如果没有,看看 Chromium,看看他们的设计是否足够模块化,可以插入永恒的 CSS 解析器......