Storypa11y
Storybook-addon-storypa11y 是一个 Storybook 插件,它可以在 Storybook 中的每个故事上运行 pa11y 测试。它基于官方的 storyshots 插件。
Storypa11y
StoryShots 为 Storybook 添加了自动化的 Jest 可访问性测试。它在测试套件中使用 pa11y。
要使用 Storypa11y,您必须使用现有的 Storybook 故事作为 Jest 测试的输入。
入门
将以下模块添加到您的应用程序中。
npm install --save-dev storybook-addon-storypa11y
快速入门
创建一个与您的 Jest 测试正则表达式匹配的文件,并添加以下代码
import { initStorypa11y } from 'storybook-addon-storypa11y';
initStorypa11y();
这将创建一个测试套件,用于测试所有故事的可访问性。
选项
您可以将一个选项对象传递给 initStorypa11y
函数,该函数接受多个键
suite: 'My suite'
storyKindRegex: /^((?!.*?Fail).)*$/,
storyNameRegex: /^((?!.*?SomeStory).)*$/,
out: 'storybook-static',
test: pa11y,
套件
将生成的测试套件的名称。
storyKindRegex
您可以传递一个正则表达式,仅将匹配的故事种类包含在可访问性测试中。
storyNameRegex
您可以传递一个正则表达式,仅将匹配的故事包含在可访问性测试中。
输出
从项目根目录到构建 Storybook 的文件夹的相对路径。默认为 storybook-static
。
pa11yOptions
将直接传递给 pa11y 的选项。请参阅 其文档 以了解可以传递的内容。还可以查看 Storypa11y 设置的 默认选项。
测试
还可以传递您自己的测试函数。请参阅 stories/failing.test.js 以了解示例。
故障排除
ReferenceError: __requireContext 未定义
如果您使用 webpack 的 require.context
功能来收集所有 Storybook 故事,则可能会发生这种情况。它在 Jest 环境中不可用,我们可以通过添加一个 Babel 插件来提供相同的接口来解决此问题。
- 使用
npm install --save-dev babel-plugin-require-context-hook
安装插件 - 将插件添加到您的 pa11y 测试文件。示例
import initStorypa11y from 'storybook-addon-storypa11y';
import contextHook from 'babel-plugin-require-context-hook/register';
contextHook();
initStorypa11y();
致谢
此插件很大程度上基于 官方的 storyshots 插件 以及所有其 贡献者 所做的出色工作。