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

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

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

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

Q&A

解決済

1回答

4869閲覧

gitlab ci/cdで簡単なJUnitプロジェクトのパイプラインを通したいです。

jamboc

総合スコア16

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

0グッド

0クリップ

投稿2020/08/23 17:50

eclipseで作成したJUnitプロジェクトをgitlabにコミットした後に、gitlab-runner登録を行い.gitlab-ci.ymlファイルを追加したのですが
パイプラインがうまく通りません。

それぞれのコードは以下となります。

ソースコード

java:Calculator.java

1public class Calculator { 2 public int maltiplication(int x, int y) { 3 return x*y; 4 } 5}
テスト用コード

java:CalculatorTest.java

1import static org.hamcrest.CoreMatchers.*; 2import static org.junit.Assert.*; 3 4import org.junit.Test; 5 6public class CalculatorTest { 7 8 @Test 9 public void mal() throws Exception { 10 Calculator sut = new Calculator(); 11 int expected = 10; 12 int actual = sut.maltiplication(5, 2); 13 assertThat(actual,is(expected)); 14 } 15 16}
.gitlab-ci.yml
stages: - test before_script: - chmod +x jUnitTest/src/CalculatorTest.java job_1: stage: test script: - jUnitTest/src/CalculatorTest.java
CI/CDジョブのログ
Running with gitlab-runner 13.1.1 (XXXXXXX) on localhost.localdomain XXXXXXXX Preparing the "docker" executor Using Docker executor with image java ... Pulling docker image java ... Using docker image sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8 for java ... Preparing environment Running on runner-XXXXXXXX-project-129-concurrent-0 via localhost.localdomain... Getting source from Git repository Fetching changes... Reinitialized existing Git repository in /builds/xxxxxxxx/jUnitTest/.git/ Checking out XXXXXXXX as master... Skipping Git submodules setup Executing "step_script" stage of the job script $ chmod +x jUnitTest/src/CalculatorTest.java $ jUnitTest/src/CalculatorTest.java jUnitTest/src/CalculatorTest.java: line 1: import: command not found jUnitTest/src/CalculatorTest.java: line 1: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 2: import: command not found jUnitTest/src/CalculatorTest.java: line 2: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 3: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 4: import: command not found jUnitTest/src/CalculatorTest.java: line 4: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 5: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 6: public: command not found jUnitTest/src/CalculatorTest.java: line 7: $'\r': command not found jUnitTest/src/CalculatorTest.java: line 8: $'@Test\r': command not found jUnitTest/src/CalculatorTest.java: line 9: syntax error near unexpected token `(' jUnitTest/src/CalculatorTest.java: line 9: ` public void mal() throws Exception { ' ERROR: Job failed: exit code 1

ログを見る限りテスト用コードのimportメソッドが正しく読み込まれていないようですが、eclipse上では
JUnitは正しく実行できたのでどうすればよいのかわかりません。

JUnitもgitlab-runnerも初学者であるため、基本的な部分で不備等あるかと思いますが、何卒ご回答お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

script: - jUnitTest/src/CalculatorTest.java

と書いてあるので、

Dockerのコンテナ内でLinuxのシェルが
jUnitTest/src/CalculatorTest.javaファイルを
Linuxのシェルスクリプトとして実行しようとしています。
シェルには、importというコマンドがないのでエラーになりますね。

まずは、練習用として以下のようなサンプルで試してみるのはいかがでしょうか。
https://gitlab.com/gitlab-examples/maven/simple-maven-app

また、以下のYouTubeの動画の通りにすれば、簡単にSpringのテンプレートでCI/CDパイプラインを動かしてみることもできるのでこちらもお勧めです。
GitLab JUnit Test Reports: Speed Run

投稿2020/08/24 02:14

編集2020/08/24 02:23
TeeTeeRuu

総合スコア48

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問