Javascript 量角器可访问性报告

Javascript 量角器可访问性报告,javascript,angularjs,protractor,accessibility,Javascript,Angularjs,Protractor,Accessibility,我正在尝试使用量角器附带的可访问性插件。从我所看到的情况来看,它会检查我所在的最后一页的所有内容。 有没有一种方法可以让两个测试脚本一个接一个地执行,并提供不同的报告,或者将所有测试脚本放在一个报告中,但分开执行 例如: access.js access1.js 输出文件: resultJsonOutputFile:'result/result.json' 我在conf.js中尝试过这样做: specs: ['../test/access.js', '../test/access1.js'],

我正在尝试使用量角器附带的可访问性插件。从我所看到的情况来看,它会检查我所在的最后一页的所有内容。 有没有一种方法可以让两个测试脚本一个接一个地执行,并提供不同的报告,或者将所有测试脚本放在一个报告中,但分开执行

例如:

access.js

access1.js

输出文件:

resultJsonOutputFile:'result/result.json'

我在conf.js中尝试过这样做:

specs: ['../test/access.js', '../test/access1.js'],
or
specs: ['../test/access*.js'],
但仍然得到最后执行的脚本的结果

我还尝试创建套件:

suites: {
   homepage: '../test/homepage/access.js',
   catalogpage: '../test/catalogpage/access1.js'
  },
但当我检查JSON文件时,若执行了两个脚本,那个么第一个脚本就可以了,并没有问题,并且为第二个脚本提供了错误。但是,若要单独运行第一个脚本,量角器将提供错误


我还尝试在一个js文件中创建不同的场景,但仍然存在相同的问题

在当前的实现中,可访问性插件被设置为在最后一页上每次调用量角器运行器都只运行一次。所以不幸的是,对套件或测试文件的任何修改都不会使它运行多次


您可以为要运行的每组测试文件创建单独的配置文件,或者使用
shardTestFiles
确保每个文件在其自己的进程中运行。有关切分的更多详细信息,请参阅。

或者,您可以使用aXe进行可访问性测试。要将其用于量角器和Webdriver中的e2e测试,请执行以下操作:

npm install --save-dev axe-webdriverjs
然后在e2e测试文件中,执行以下操作:

var AxeBuilder = require('path_to_the/axe-webdriverjs');
要获得AxeBuilder,然后在需要运行测试的任何地方,您需要:

AxeBuilder(browser.driver)
    .analyze(function (results) {
        expect(results.violations.length).toBe(0);
    });
上面的示例使用的是Jasmine,但是您可以推断任何其他断言库

另外:这里有一个示例项目可以克隆并运行


免责声明:我与aXe项目有关,因此不是中立的

我也遇到了这个问题-因为另一张海报仍然存在,插件并不是真正设计成这样运行的

我写了一个插件的派生版本,它可以满足你的需求-

每当您在浏览器中打开要测试的页面时,您都会调用
runAxeTest
(或
runAxeTestWithSelector
),它会使用aXe引擎生成报告

可用于量角器附带的可访问性插件无法使用的用例。在使用连续统的基于量角器的示例项目上。可从“量角器连续统”下下载。如果您查看示例项目的源代码,基本上可以归结为:

const continuum = require('../js/Continuum.js').Continuum;
continuum.setUp(driver, "../js/AccessEngine.community.js");
continuum.runAllTests().then(() => {
    const accessibilityConcerns = continuum.getAccessibilityConcerns();
    // accessibilityConcerns.length will be 0 if no accessibility concerns are found
});
(有关上述内容的更多信息,请查看。)

您可以在您喜欢的测试中的任何位置执行
continuum.runAllTests
bit。这也包括同一测试中的多次测试,如果需要的话,如果我理解正确的话,这最终就是你想要的


当然,没有自动化的可访问性测试工具可以替代手动的可访问性测试。看起来您现在只是想获得一个基本的合规性水平,所以Continuum似乎适合您的用例来解决这个低挂果实。

使用Ruby/Rspec是否可以实现这一点?此回购/创业板具有R-Spec的基础。你能用量角器来使用R-Spec吗?看来我们将不再使用量角器,我们已经准备好Cucumber/Rspec,我正在考虑是否可以用它来代替量角器:)回购应该可以帮助你使用R-Spec和Cucumber,但我遇到了错误“找不到名称runAxeTest”在我完成npm安装程序包并在配置文件中添加插件之后,在我的测试中。我正在使用你的软件包:量角器斧头报告插件