かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

IntelliJ IDEA を 2018.2.6 → 2018.2.7 → 2018.3.1 へバージョンアップ

IntelliJ IDEA を 2018.2.6 → 2018.2.7 へバージョンアップする

IntelliJ IDEA の 2018.3.1 がリリースされているのでバージョンアップしますが、最初に 2018.2.6 → 2018.2.7 へバージョンアップします。

※ksbysample-webapp-lending プロジェクトを開いた状態でバージョンアップしています。

  1. IntelliJ IDEA のメインメニューから「Help」-「Check for Updates...」を選択します。

  2. IDE and Plugin Updates」ダイアログが表示されます。左下に「Update and Restart」ボタンが表示されていますので、「Update and Restart」ボタンをクリックします。

    f:id:ksby:20181208234825p:plain

  3. Plugin の update も表示されました。このまま「Update and Restart」ボタンをクリックします。

    f:id:ksby:20181208234908p:plain

  4. Patch がダウンロードされて IntelliJ IDEA が再起動します。

  5. IntelliJ IDEA が起動すると画面下部に「Indexing…」のメッセージが表示されますので、終了するまで待機します。

    f:id:ksby:20181208235258p:plain

  6. IntelliJ IDEA のメインメニューから「Help」-「About」を選択し、2018.2.7 へバージョンアップされていることを確認します。

  7. Gradle Tool Window のツリーを見ると「Tasks」の下に「other」しかない状態になっている。。。と思いましたが、今回は変わっていませんでした。念の為、左上にある「Refresh all Gradle projects」ボタンをクリックして更新しておきます。

  8. clean タスク実行 → Rebuild Project 実行 → build タスクを実行して、"BUILD SUCCESSFUL" のメッセージが出力されることを確認します。

    f:id:ksby:20181209000643p:plain

  9. Project Tool Window で src/test を選択した後、コンテキストメニューを表示して「Run with Coverage」-「All Tests」を選択し、テストが全て成功することを確認します。。。が、今回は4件テストが失敗しました。

    f:id:ksby:20181209003304p:plain

    原因を調査します。まず4件中2件は以下のテストでした。

    f:id:ksby:20181209004712p:plain

    最初の testGetLibraryList_都道府県名が正しい場合() メソッドでは java.lang.AssertionError: No further requests expected: HTTP GET http://api.calil.jp/library?appkey=... というエラーが出ていました。AssertionError の例外を throw している箇所を見てみたのですが、原因がいま一つ分かりません。。。 また調査している時に気づいたのですが、テストが失敗しているこのクラスだけテストを実行するとなぜか問題なく成功します。

    さっぱり分からなかったので stackoverflow で検索してみたところ、No further requests expected while MockRestServiceServer was set to ExpectedCount.manyTimes() という QA がヒットしました。どうも MockRestServiceServer を使用するテストがある場合、そのテストクラスに @DirtiesContext アノテーションを付けておかないと他のテストに影響が出るようです。

    Spring Boot 1.5.x の Web アプリを 2.0.x へバージョンアップする ( その17 )( Spock を 1.1-groovy-2.4 → 1.2-groovy-2.5 へバージョンアップする ) の記事で追加した MockRestServiceServer を使用したテストが書かれている src/test/groovy/ksbysample/webapp/lending/service/calilapi/CalilApiServiceRetryTest.groovy に @DirtiesContext アノテーションを付加します。

    f:id:ksby:20181209022415p:plain

    再度「Run with Coverage」-「All Tests」を選択すると、テストが全て成功しました。

    f:id:ksby:20181209023055p:plain

IntelliJ IDEA を 2018.2.7 → 2018.3.1 へバージョンアップする

IntelliJ IDEA の 2018.3.1 がリリースされているのでバージョンアップします。

※ksbysample-webapp-lending プロジェクトを開いた状態でバージョンアップしています。

  1. IntelliJ IDEA のメインメニューから「Help」-「Check for Updates...」を選択します。

  2. IDE and Plugin Updates」ダイアログが表示されます。左下に「Update and Restart」ボタンが表示されていますので、「Update and Restart」ボタンをクリックします。

    f:id:ksby:20181209085028p:plain

  3. Plugin の update も表示されました。このまま「Update and Restart」ボタンをクリックします。

    f:id:ksby:20181209085138p:plain

  4. Patch がダウンロードされて IntelliJ IDEA が再起動します。

  5. 「Complete Installation」ダイアログが表示されます。何も変更せずに「OK」ボタンをクリックします。

    f:id:ksby:20181209085540p:plain

  6. IntelliJ IDEA が起動すると画面下部に「Indexing…」のメッセージが表示されますので、終了するまで待機します。

    f:id:ksby:20181209090002p:plain

  7. Plugin が全て最新にアップデートされていないので先にアップデートします。IntelliJ IDEA のメインメニューから「Help」-「Check for Updates...」を選択します。

  8. IDE and Plugin Updates」ダイアログが表示されます。何も変更せずに「Update」ボタンをクリックします。

    f:id:ksby:20181209090317p:plain

    Patch がダウンロードされた後、IntelliJ IDEA を再起動します。再起動後、画面下部に「Indexing…」のメッセージが表示されますので、終了するまで待機します。

  9. IntelliJ IDEA のメインメニューから「Help」-「About」を選択し、2018.3.1 へバージョンアップされていることを確認します。

  10. Gradle Tool Window のツリーを見ると「Tasks」の下に「other」しかない状態になっている。。。はずでしたが、今回は何も表示されていませんでした。。。

    f:id:ksby:20181209091022p:plain

    左上にある「Refresh all Gradle projects」ボタンをクリックして更新してみたら、いつもと同じように元の状態に戻りました。

    f:id:ksby:20181209091601p:plain

  11. clean タスク実行 → Rebuild Project 実行 → build タスクを実行して、"BUILD SUCCESSFUL" のメッセージが出力されることを確認します。

    f:id:ksby:20181209095629p:plain

  12. Project Tool Window で src/test を選択した後、コンテキストメニューを表示して「Run 'All Tests' with Coverage」を選択し(メニューが階層構造でなくなっていました)、テストが全て成功することを確認します。アイコンも変わりましたね。

    f:id:ksby:20181209101930p:plain

  13. 最後に C:\Users\root\IntelliJIdea2018.2 を削除します。