Özet - Test ve CI/CD
- Flutter kursu
- İleri seviye
- Ders 65/69
- 4 dk
testWidgets ve CI'ı birleştirerek kalıte kapısı yaparsın.
flutter_test ve CI birleşimi
Bir CI workflow'unda flutter test adımı, test/ klasöründeki tüm testWidgets testlerini çalıştırır. Testler geçerse CI yeşil olur ve kod merge edilebilir; testler başarısız olursa CI kırmızı olur ve merge engellenir. Bu, kalite kapısı oluşturur.
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
- run: flutter testUygulama İki buton testi
main içinde 'iki buton' adlı bir testWidgets testi yaz. pumpWidget ile MaterialApp(home: Row(children: [ElevatedButton(onPressed: () {}, child: Text('A')), ElevatedButton(onPressed: () {}, child: Text('B'))])) render et. find.byType(ElevatedButton) ve findsNWidgets(2) ile doğrula. Son olarak 'ci: flutter test' yazdır.
Başlangıç kodu
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
void main() {
// 'iki buton' adlı testWidgets testi yaz
// pumpWidget ile MaterialApp içinde Row ve iki ElevatedButton render et
// find.byType ile ElevatedButton bul ve 2 adet bulunduğunu doğrula
// son olarak 'ci: flutter test' yazdir
}Örnek çözüm
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
void main() {
testWidgets('iki buton', (tester) async {
await tester.pumpWidget(
MaterialApp(
home: Row(
children: [
ElevatedButton(onPressed: () {}, child: const Text('A')),
ElevatedButton(onPressed: () {}, child: const Text('B')),
],
),
),
);
expect(find.byType(ElevatedButton), findsNWidgets(2));
});
print('ci: flutter test');
}Beklenen çıktı
ci: flutter test
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 CI'da flutter test adımı ne yapar?
- Cihaza yükler
- Tüm testleri çalıştırır Doğru cevap
- Kodu derler
- Paket yükler
Açıklama: flutter test komutu test/ klasöründeki tüm _test.dart dosyalarını çalıştırır; CI bu adımla kalite kapısı kurar.
2 flutter test komutu
- run: ____
- run: flutter test
Açıklama: CI workflow'unda - run: flutter test satırı tüm testleri çalıştırır; flutter run uygulamayı cihazda açar, flutter build paket üretir.
3 Test ve CI birleşimi
| Kavram | Anlamı |
|---|---|
flutter_test |
Test paketi |
testWidgets |
Test fonksiyonu |
GitHub Actions |
CI aracı |
flutter test |
Test çalıştırma komutu |