getappmap / getappmap/appmap-java
Test failures in a Kotlin spring project
オープン
まだ誰も着手していません。
- 主要言語
- Java
- スター
- 88
- フォーク
- 17
- 平均マージ
- 2日 2時間
- マージ済み PR(30日)
- 1
説明
Project: https://github.com/spring-guides/tut-spring-boot-kotlin.git
appmap.yml:
# appmap.yml
name: MyFirstKotlin/AppMap
packages:
# List the packages you'd like to record here.
- path: com.example.blog
Shell output:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.2.RELEASE)
2021-03-23 16:55:21.332 WARN 76617 --- [ main] o.s.boot.StartupInfoLogger : InetAddress.getLocalHost().getHostName() took 5006 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
2021-03-23 16:55:26.340 INFO 76617 --- [ main] com.example.blog.HttpControllersTests : Starting HttpControllersTests on Ubehebe.local with PID 76617 (started by ptrdvrk in /Users/ptrdvrk/work/github/java/tut-spring-boot-kotlin)
2021-03-23 16:55:26.341 INFO 76617 --- [ main] com.example.blog.HttpControllersTests : No active profile set, falling back to default profiles: default
2021-03-23 16:55:32.245 INFO 76617 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-03-23 16:55:32.373 INFO 76617 --- [ main] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2021-03-23 16:55:32.373 INFO 76617 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2021-03-23 16:55:32.377 INFO 76617 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 4 ms
2021-03-23 16:55:32.393 INFO 76617 --- [ main] com.example.blog.HttpControllersTests : Started HttpControllersTests in 21.094 seconds (JVM running for 72.569)
2021-03-23 16:55:32.829 WARN 76617 --- [ main] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: no answer found for: Iterable(child of com.example.blog.ArticleRepository#0 bean#2#3).iterator(); nested exception is com.fasterxml.jackson.databind.JsonMappingException: no answer found for: Iterable(child of com.example.blog.ArticleRepository#0 bean#2#3).iterator()]
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/article/
Parameters = {}
Headers = [Accept:"application/json"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = com.example.blog.ArticleController
Method = com.example.blog.ArticleController#findAll()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = org.springframework.http.converter.HttpMessageNotWritableException
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 500
Error message = null
Headers = [Content-Type:"application/json"]
Content type = application/json
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
2021-03-23 16:55:32.882 WARN 76617 --- [ main] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: no answer found for: Iterable(child of com.example.blog.UserRepository#0 bean#1#4).iterator(); nested exception is com.fasterxml.jackson.databind.JsonMappingException: no answer found for: Iterable(child of com.example.blog.UserRepository#0 bean#1#4).iterator()]
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/user/
Parameters = {}
Headers = [Accept:"application/json"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = com.example.blog.UserController
Method = com.example.blog.UserController#findAll()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = org.springframework.http.converter.HttpMessageNotWritableException
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 500
Error message = null
Headers = [Content-Type:"application/json"]
Content type = application/json
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
[ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 21.598 s <<< FAILURE! - in com.example.blog.HttpControllersTests
[ERROR] List articles Time elapsed: 0.446 s <<< FAILURE!
java.lang.AssertionError: Status expected:<200> but was:<500>
at com.example.blog.HttpControllersTests.List articles(HttpControllersTests.kt:30)
[ERROR] List users Time elapsed: 0.029 s <<< FAILURE!
java.lang.AssertionError: Status expected:<200> but was:<500>
at com.example.blog.HttpControllersTests.List users(HttpControllersTests.kt:44)
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされている tut-spring-boot-kotlin プロジェクトから始め、HttpControllersTests.kt を実行します。特に 30 行目と 44 行目のアサーションを確認してください。GET /api/article/ と GET /api/user/ の失敗と併せて agent.log を確認します。両方のテストが期待されるステータス 200 で成功し、シリアライズエラーが報告されなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, kotlin, spring-boot
- 領域
- api, backend, testing
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100