- 모든 서비스 메서드 시그니처를 실제 구현에 맞게 수정 - TestDataGenerator 제거하고 직접 객체 생성으로 변경 - 모델 필드명 및 타입 불일치 수정 - 불필요한 Either 패턴 사용 제거 - null safety 관련 이슈 해결 수정된 파일: - test/integration/screens/company_integration_test.dart - test/integration/screens/equipment_integration_test.dart - test/integration/screens/user_integration_test.dart - test/integration/screens/login_integration_test.dart
321 lines
8.7 KiB
HTML
321 lines
8.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>SUPERPORT 테스트 리포트 - SUPERPORT Master Test Suite</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
line-height: 1.6;
|
|
color: #333;
|
|
background: #f5f5f5;
|
|
}
|
|
|
|
.container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
}
|
|
|
|
.report-header {
|
|
background: white;
|
|
padding: 30px;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.report-header h1 {
|
|
font-size: 2.5em;
|
|
margin-bottom: 10px;
|
|
color: #2c3e50;
|
|
}
|
|
|
|
.header-info {
|
|
color: #666;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.header-info span {
|
|
margin-right: 20px;
|
|
}
|
|
|
|
section {
|
|
background: white;
|
|
padding: 30px;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 1.8em;
|
|
margin-bottom: 20px;
|
|
color: #2c3e50;
|
|
}
|
|
|
|
.summary-cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
gap: 20px;
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.card {
|
|
text-align: center;
|
|
padding: 20px;
|
|
border-radius: 8px;
|
|
background: #f8f9fa;
|
|
}
|
|
|
|
.card.total { background: #e3f2fd; color: #1976d2; }
|
|
.card.success { background: #e8f5e9; color: #388e3c; }
|
|
.card.failure { background: #ffebee; color: #d32f2f; }
|
|
.card.skipped { background: #fff3e0; color: #f57c00; }
|
|
|
|
.card-value {
|
|
font-size: 2.5em;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.card-label {
|
|
font-size: 0.9em;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.progress-bar {
|
|
height: 30px;
|
|
background: #e0e0e0;
|
|
border-radius: 15px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #4caf50, #45a049);
|
|
transition: width 0.5s ease;
|
|
}
|
|
|
|
.progress-text {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
font-weight: bold;
|
|
color: #333;
|
|
}
|
|
|
|
.failure-item {
|
|
border: 1px solid #ffcdd2;
|
|
border-radius: 4px;
|
|
padding: 15px;
|
|
margin-bottom: 15px;
|
|
background: #ffebee;
|
|
}
|
|
|
|
.failure-item h3 {
|
|
color: #c62828;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.failure-message {
|
|
background: #fff;
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
overflow-x: auto;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
details {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
summary {
|
|
cursor: pointer;
|
|
color: #666;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.stack-trace {
|
|
background: #f5f5f5;
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
font-size: 0.8em;
|
|
overflow-x: auto;
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
th, td {
|
|
text-align: left;
|
|
padding: 12px;
|
|
border-bottom: 1px solid #e0e0e0;
|
|
}
|
|
|
|
th {
|
|
background: #f5f5f5;
|
|
font-weight: 600;
|
|
color: #666;
|
|
}
|
|
|
|
td.success { color: #388e3c; }
|
|
td.failure { color: #d32f2f; }
|
|
|
|
.fix-item {
|
|
border-radius: 4px;
|
|
padding: 15px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.fix-item.success {
|
|
background: #e8f5e9;
|
|
border: 1px solid #c8e6c9;
|
|
}
|
|
|
|
.fix-item.failure {
|
|
background: #ffebee;
|
|
border: 1px solid #ffcdd2;
|
|
}
|
|
|
|
.fix-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.fix-type {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.env-table {
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.env-key {
|
|
font-weight: 600;
|
|
color: #666;
|
|
}
|
|
|
|
.report-footer {
|
|
text-align: center;
|
|
color: #666;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<header class="report-header">
|
|
<h1>🚀 SUPERPORT Master Test Suite</h1>
|
|
<div class="header-info">
|
|
<span class="date">생성 시간: 2025-08-05 15:28:37.918648</span>
|
|
<span class="duration">소요 시간: 0초</span>
|
|
</div>
|
|
</header>
|
|
<section class="summary">
|
|
<h2>📊 테스트 요약</h2>
|
|
<div class="summary-cards">
|
|
<div class="card total">
|
|
<div class="card-value">0</div>
|
|
<div class="card-label">전체 테스트</div>
|
|
</div>
|
|
<div class="card success">
|
|
<div class="card-value">0</div>
|
|
<div class="card-label">성공</div>
|
|
</div>
|
|
<div class="card failure">
|
|
<div class="card-value">1</div>
|
|
<div class="card-label">실패</div>
|
|
</div>
|
|
<div class="card skipped">
|
|
<div class="card-value">0</div>
|
|
<div class="card-label">건너뜀</div>
|
|
</div>
|
|
</div>
|
|
<div class="progress-bar">
|
|
<div class="progress-fill" style="width: 0.0%"></div>
|
|
<div class="progress-text">성공률: 0.0%</div>
|
|
</div>
|
|
</section>
|
|
<section class="failures">
|
|
<h2>❌ 실패한 테스트</h2>
|
|
<div class="failure-list">
|
|
<div class="failure-item">
|
|
<h3>OverviewScreen</h3>
|
|
<pre class="failure-message">테스트 실행 중 치명적 오류: TestSetupError: 테스트 환경 설정 실패 ({error: Bad state: GetIt: Object/factory with type DashboardService is not registered inside GetIt.
|
|
(Did you accidentally do GetIt sl=GetIt.instance(); instead of GetIt sl=GetIt.instance;
|
|
Did you forget to register it?), sessionId: OverviewScreen_1754375317790})</pre>
|
|
<details>
|
|
<summary>스택 트레이스</summary>
|
|
<pre class="stack-trace">#0 BaseScreenTest.setupTestEnvironment (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/screens/base/base_screen_test.dart:96:7)
|
|
<asynchronous suspension>
|
|
#1 BaseScreenTest.runTests (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/screens/base/base_screen_test.dart:138:7)
|
|
<asynchronous suspension>
|
|
#2 MasterTestSuite._runSingleTest (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/master_test_suite.dart:345:26)
|
|
<asynchronous suspension>
|
|
#3 _Semaphore.run (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/master_test_suite.dart:765:14)
|
|
<asynchronous suspension>
|
|
#4 Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
|
|
<asynchronous suspension>
|
|
#5 MasterTestSuite._runTestsInParallel (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/master_test_suite.dart:313:21)
|
|
<asynchronous suspension>
|
|
#6 MasterTestSuite.runAllTests (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/master_test_suite.dart:160:9)
|
|
<asynchronous suspension>
|
|
#7 main.<anonymous closure>.<anonymous closure> (file:///Users/maximilian.j.sul/Documents/flutter/superport/test/integration/automated/master_test_suite.dart:815:7)
|
|
<asynchronous suspension>
|
|
#8 Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:229:9)
|
|
<asynchronous suspension>
|
|
#9 Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:227:7)
|
|
<asynchronous suspension>
|
|
#10 Invoker._waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:258:9)
|
|
<asynchronous suspension>
|
|
</pre>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="environment">
|
|
<h2>⚙️ 테스트 환경</h2>
|
|
<table class="env-table">
|
|
<tbody>
|
|
<tr>
|
|
<td class="env-key">platform</td>
|
|
<td class="env-value">Flutter</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="env-key">api</td>
|
|
<td class="env-value">https://api-dev.beavercompany.co.kr</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="env-key">mode</td>
|
|
<td class="env-value">parallel</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="env-key">maxParallel</td>
|
|
<td class="env-value">3</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<footer class="report-footer">
|
|
<p>이 리포트는 SUPERPORT 자동화 테스트 시스템에 의해 생성되었습니다.</p>
|
|
<p>생성 시간: 2025-08-05 15:28:37.920410</p>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html>
|