Как вы тестируете полимерные компоненты, написанные в ES6/ES2015, с помощью тестера веб-компонентов?

Начиная с polymer-starter-kit 1.1.0, я изменил весь существующий код в наборе на ES6/ES2015, включая следующие: gulpfile.js, app.js, routing.html, my-greeting.html, my-list.html, my-greeting-basic.html and my-listing-basic.html, Следуя инструкциям рецепта Babel es6, найденным в папке docs, я запустил gulp serve чтобы убедиться, что приложение работает правильно и работает, за исключением того, что все существующие тесты не выполняются со следующим сообщением...

chrome 48                ✖ Test Suite Initialization

  Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

chrome 48                Tests failed: 2 failed tests

вышесказанное верно для chrome 41, firefox 44 а также safari 9.0 также

похоже, что wct запускает не скомпилированный код, и я не могу найти никаких опций, которые позволили бы сначала скомпилировать задачи wct gulp или в этом отношении указывают либо на .tmp или же dist папки для проверки.

вот один из модифицированных примеров...

<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<link rel="import" href="../../bower_components/polymer/polymer.html">

<dom-module id="my-list">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>
    <ul>
      <template is="dom-repeat" items="{{items}}">
        <li><span class="paper-font-body1">{{item}}</span></li>
      </template>
    </ul>
  </template>
  <script>
    (() => {
      'use strict';

      class MyList {

        beforeRegister() {
          let is = this.constructor.name
            .replace(/\W+/g, '-')
            .replace(/([a-z\d])([A-Z])/g, '$1-$2')
            .toLowerCase();

          this.is = is;

          this.properties = {
            items : {
              type   : Array,
              notify : true,
            }
          };
        }

        ready() {
          this.items = [
            'Responsive Web App boilerplate',
            'Iron Elements and Paper Elements',
            'End-to-end Build Tooling (including Vulcanize)',
            'Unit testing with Web Component Tester',
            'Routing with Page.js',
            'Offline support with the Platinum Service Worker Elements'
          ];
        }
      }

      Polymer(MyList);
    })();
  </script>
</dom-module>

1 ответ

Решение

Пока официальный Polymer-Starter-Kit не добавит документацию к поддержке Add ES2015 через документ Babel, описывающий предпочтительный метод тестирования кода ES6/ES2015, моя вилка Polymer-Starter-Kit имеет модифицированный gulpfile.js а также wtc.conf.js что позволяет ES6/ES2015 Elements, Tests & Code тестировать правильно.

В основном я изменил wtc.conf.js файл конфигурации для указания на dist вместо app для тестовых наборов и тому bower_components отображение пути. Чтобы убедиться, что проект построен правильно, wct залпом, в gulpfile.js, были введены с теми же зависимостями, что и gulp serve задача.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ - Позвольте мне сказать, что я не думаю, что это идеальный метод, это всего лишь временное исправление, поэтому я могу продолжить работу с тестами и ES2015.

Мне лично нравится как WTC В настоящее время сборка не требуется, что делает процесс разработки более плавным и динамичным. Возможно, он может добавить поддержку браузера Babel, когда обнаружит ES2015.

Другие вопросы по тегам