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