質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Travis CI

Travis CIは、Githubアカウントでログインして使用するCIサービスです。CIしたいリポジトリーを選択すればGithubのコミットを取得し、設定ファイル通りにテストを実行します。テストが失敗した場合、メールで結果を送信することも可能です。

Q&A

0回答

1824閲覧

[2019/09/01 追記].travis.ymlでgolangの自動テストを設定したいです

jpskgc

総合スコア19

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Travis CI

Travis CIは、Githubアカウントでログインして使用するCIサービスです。CIしたいリポジトリーを選択すればGithubのコミットを取得し、設定ファイル通りにテストを実行します。テストが失敗した場合、メールで結果を送信することも可能です。

0グッド

0クリップ

投稿2019/08/31 05:52

編集2019/08/31 17:06

前提・実現したいこと

Docker上に構築したapi(Golang)をtravis ciを用いて自動ビルド/デプロイしています。
apiのユニットテストコードを書いたのですが、これがtravis ciで自動ビルドされる前に実行されるように.travis.ymlを設定したいのですが、うまく設定できません。
何を.travis.ymlに書けば良いのかを教えていただきたいです。

該当のソースコード

フォルダ構成

article ├ client ├ api │ ├ main.go │ ├ dao │ │ ├ dao.go │ │ └ dao_test.go │ ├ //省略 │ └ Dockerfile ├ nginx └ docker-compose.yml

.travis.yml

yml

1language: generic 2sudo: required 3services: 4 - docker 5 6before_install: 7 - docker build -t jpskgc/react-test -f ./client/Dockerfile.dev ./client 8 9script: 10 - docker run -e CI=true jpskgc/react-test npm test 11 12after_success: 13 - docker build -t jpskgc/multi-client ./client 14 - docker build -t jpskgc/multi-nginx ./nginx 15 - docker build -t jpskgc/multi-api ./api 16 - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin 17 - docker push jpskgc/multi-client 18 - docker push jpskgc/multi-nginx 19 - docker push jpskgc/multi-api 20deploy: 21 provider: elasticbeanstalk 22 region: ap-northeast-1 23 app: multi-docker 24 env: MultiDocker-env 25 bucket_name: elasticbeanstalk-ap-northeast-1-340135579499 26 bucket_path: docker-multi 27 on: 28 branch: master 29 access_key_id: 30 secure: $AWS_ACCESS_KEY 31 secret_access_key: 32 secure: $AWS_SECRET_KEY 33

docker-compose.yml

version: '3' services: db: image: mysql ports: - '3306:3306' environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: article MYSQL_USER: docker MYSQL_PASSWORD: docker nginx: restart: always build: dockerfile: Dockerfile.dev context: ./nginx ports: - '3050:80' depends_on: - client - api api: build: dockerfile: Dockerfile.dev context: ./api volumes: - ./api:/go/src/github.com/jpskgc/article/app depends_on: - db tty: true environment: - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - MYSQL_USER - MYSQL_PASSWORD - MYSQL_HOST - GO111MODULE client: build: dockerfile: Dockerfile.dev context: ./client volumes: - /app/node_modules - ./client:/app

ソースコード全体は以下のgithubにあります
https://github.com/jpskgc/article

補足情報(FW/ツールのバージョンなど)

・client: react/axios ・api: golang/gin ・web-server: nginx ・db: mysql ・container: docker ・ci-tool: travis ・deploy: aws elastic beanstalk

以上、お手数ですがご教授いただけると幸いです。よろしくお願いいたします。

追記[2019/09/01]

以下のようにtravis.ymlを加筆したところ、travisでエラーが発生しました。
dbのコネクションに問題があるようなのですが、どのファイルに何を書き換えればいいのかはまだ分かっていません。

before_install: - docker build -t jpskgc/api-test -f ./api/Dockerfile.dev ./api script: - docker run -e CI=true jpskgc/api-test go test -v ./dao
$ docker run -e CI=true [secure]/api-test go test -v ./dao panic: dial tcp :3306: connect: connection refused goroutine 1 [running]: main.main() /app/main.go:30 +0xc72 The command "docker run -e CI=true [secure]/api-test go test -v ./dao" exited with 2. Done. Your build exited with 1.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問