Ошибка тестирования Polymer 3.0 a11ySuite - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь заставить работать a11ySuite в тестах Polymer 3.0.

Когда я запускаю тест с polymer test, тесты прерываются, и я вижу в консоли автоматическогов браузере появляется следующая ошибка:

Uncaught ReferenceError: Polymer is not defined
at Suite.a11ySuite.eachTest (a11ySuite.js:51)
at mocha.js:1550
at Object.exports.forEach (mocha.js:1595)
at Suite.eachTest (mocha.js:1550)
at Runner.grepTotal (mocha.js:1224)
at Runner.grep (mocha.js:1215)
at new Runner (mocha.js:1197)
at Mocha.run (mocha.js:592)
at _runMocha (extend.js:41)
at done (util.js:34)

Если я работаю в режиме отладки, из polymer serve url я получаю эту ошибку:

a11ySuite.js:49 Uncaught TypeError: fixtureElement.create is not a function
at Suite.a11ySuite.eachTest (a11ySuite.js:49)
at mocha.js:1550
at Object.exports.forEach (mocha.js:1595)
at Suite.eachTest (mocha.js:1550)
at Runner.grepTotal (mocha.js:1224)
at Runner.grep (mocha.js:1215)
at new Runner (mocha.js:1197)
at Mocha.run (mocha.js:592)
at _runMocha (extend.js:41)
at done (util.js:34)

Этому также предшествует кучаиз 404, пришедших из mocha, относительно lodash, sinonjs и test-fixture, предполагая, что это потому, что он запускается в режиме serve.

Это мой тестовый код:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Verifier - a11y test</title>

    <script src="../node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
    <script src="../node_modules/web-component-tester/browser.js"></script>
    <script type="module" src="../src/verifier.js"></script>
</head>
<body>
    <test-fixture id="BUVA11y">
        <template>
            <verifier id="verifier"></verifier>
        </template>
    </test-fixture>

    <script>
      suite('A11y testing', function() {
        a11ySuite('BUVA11y');
      });
    </script>
</body>
</html>

Iне могу найти больше информации в Интернете, и документы по этому вопросу очень ограничены (на самом деле не совсем точно).

1 Ответ

0 голосов
/ 25 мая 2018

a11ySuite был перемещен в wct-browser-legacy с web-component-tester версии 6.4.3 .Учитывая "устаревшие" названия, я предполагаю, что это устарело.Я предполагаю, что он используется следующим образом:

<script type="module">
  import {a11ySuite} from 'wct-browser-legacy/a11ySuite.js';
  a11ySuite('view1'); // "view1" == template name
</script>

Но я не смог заставить его работать в другом чистом проекте polymer-3-starter-kit (т. Е. Свойство a11ySuite существует в модуле, но всегда undefined).Устанавливая точку останова , где эта переменная определена , я вижу, что переменная фактически никогда не устанавливается, потому что обработчик события Mocha pre-require никогда не вызывается по какой-либо причине.

Однако, этоПохоже, что axe-core (через pwa-helpers) является новейшим инструментом тестирования a11y для использования в Polymer 3 на основе кода теста вpwa-starter-kit:

<script type="module">
  import 'axe-core/axe.min.js';
  import {axeReport} from 'pwa-helpers/axe-report.js';

  suite('views a11y tests', function() {
    test('my-view1', function() {
      const el = fixture('view1');
      return axeReport(el);
    });
    ...
  });
</script>
...