alexa-sdkで作ったCustom SkillをTravis CIで自動テストする

この記事は一人Alexa Skills Kit for Node.js Advent Calendar 2017の8日目の記事です。 おさらい Intentのユニットテスト Mocha + Power-assertを使う […]

広告ここから
広告ここまで

目次

    この記事は一人Alexa Skills Kit for Node.js Advent Calendar 2017の8日目の記事です。

    おさらい

    Intentのユニットテスト

    Mocha + Power-assertを使うことで、Intentリクエスト毎にLambdaの動作をテストできます。
    Mocha & Power-assertでalexa-sdkで作ったAlexa Skillのユニットテスト

    会話テスト

    alexa-conversationを使うことで、会話のフローをテストすることもできます。

    alexa-conversationでAlexa Skillのテストをする

    ESLintで構文チェック

    Travis CIなどのCIで自動テストをするのであれば、構文チェックも入れておきたいところです。

    Node.jsであれば、ESLintをいれることをおすすめします。

    ESLintのセットアップ

    --initすると、対話モードでフォーマットやコンフィグのファイル形式を聞かれます。

    $ npm install -D eslint
    $ ./node_modules/eslint/bin/eslint.js --init
    ? How would you like to configure ESLint? Use a popular style guide
    ? Which style guide do you want to follow? Standard
    ? What format do you want your config file to be in? 
      JavaScript 
    ❯ YAML 
      JSON 
    

    ダイアログが完了すると必要なパッケージを追加してくれるので、git commitしておきましょう

    package.jsonにコマンドを設定する

    毎回./node_modules/eslint/bin/eslint.jsなどどやるのは面倒なので、package.jsonに書いておきましょう。

    こんな感じになっているかなと思います。

    {
      "name": "alexa-hello-world",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": " ./node_modules/mocha/bin/_mocha test/*/*",
        "lint": "./node_modules/eslint/bin/eslint.js ./"
      },
    ...
    }
    

    Travis CIでテストを自動化する

    あとは.travis.ymlを以下の様にして配置しておけばOKです。

    language: node_js
    node_js:
      - "7"
    install:
        - npm install
    script:
        - npm test
        - npm run lint
    

    https://travis-ci.org/でGitHubのプロジェクトと連携させれば、自動でテストが実行される様になります。

    今後について

    Serverless Frameworkでのソースコードデプロイや、ASK-CLIによるスキルのビルドなどもできるようになれば、かなり自動化が捗る様になります。

    Amazon Alexa Advent Calendar 2017 – Adventarの方でASK-CLIについてだれか記事を書いてくれないかなぁと期待しつつ、進展があればまたブログでおしらせします。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark