Amazon AlexaAWS

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についてだれか記事を書いてくれないかなぁと期待しつつ、進展があればまたブログでおしらせします。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

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

Related Category posts