14 KiB
Testowanie shopPRO
Szybki start
Pelny zestaw testow
composer test
Alternatywnie (Windows):
./test.ps1
./test.bat
./test-simple.bat
./test-debug.bat
Alternatywnie (Git Bash):
./test.sh
Konkretny plik testowy
./test.ps1 tests/Unit/Domain/Product/ProductRepositoryTest.php
./test.ps1 tests/Unit/admin/Controllers/ArticlesControllerTest.php
Konkretny test (--filter)
./test.ps1 --filter testGetQuantityReturnsCorrectValue
Aktualny stan suite
Ostatnio zweryfikowano: 2026-02-15
OK (385 tests, 1246 assertions)
Aktualizacja po stabilizacji ShopOrder / Integrations / Global Search (2026-02-15, ver. 0.277):
Pelny suite: OK (385 tests, 1246 assertions)
SettingsControllerTest: OK (7 tests, 10 assertions)
Aktualizacja po migracji ShopClients (2026-02-15, ver. 0.274) - testy punktowe:
OK (10 tests, 34 assertions)
Aktualizacja po migracji ShopCategory (2026-02-15, ver. 0.275) - testy punktowe:
OK (16 tests, 72 assertions)
Pelny suite po migracji ShopCategory (2026-02-15, ver. 0.275):
OK (377 tests, 1197 assertions)
Aktualizacja po migracji ShopOrder (2026-02-15, ver. 0.276) - testy punktowe:
OK (8 tests, 49 assertions)
Nowe testy dodane 2026-02-15:
tests/Unit/Domain/Client/ClientRepositoryTest.phptests/Unit/admin/Controllers/ShopClientsControllerTest.phptests/Unit/Domain/Category/CategoryRepositoryTest.phptests/Unit/admin/Controllers/ShopCategoryControllerTest.phptests/Unit/Domain/Order/OrderRepositoryTest.phptests/Unit/admin/Controllers/ShopOrderControllerTest.php
Struktura testow
tests/
|-- bootstrap.php
|-- Unit/
| |-- Domain/
| | |-- Article/ArticleRepositoryTest.php
| | |-- Attribute/AttributeRepositoryTest.php
| | |-- Banner/BannerRepositoryTest.php
| | |-- Cache/CacheRepositoryTest.php
| | |-- Coupon/CouponRepositoryTest.php
| | |-- Category/CategoryRepositoryTest.php
| | |-- Dictionaries/DictionariesRepositoryTest.php
| | |-- Integrations/IntegrationsRepositoryTest.php
| | |-- PaymentMethod/PaymentMethodRepositoryTest.php
| | |-- Producer/ProducerRepositoryTest.php
| | |-- Product/ProductRepositoryTest.php
| | |-- ProductSet/ProductSetRepositoryTest.php
| | |-- Promotion/PromotionRepositoryTest.php
| | |-- Settings/SettingsRepositoryTest.php
| | |-- ShopStatus/ShopStatusRepositoryTest.php
| | |-- Transport/TransportRepositoryTest.php
| | `-- User/UserRepositoryTest.php
| `-- admin/
| `-- Controllers/
| |-- ArticlesControllerTest.php
| |-- DictionariesControllerTest.php
| |-- IntegrationsControllerTest.php
| |-- ProductArchiveControllerTest.php
| |-- SettingsControllerTest.php
| |-- ShopAttributeControllerTest.php
| |-- ShopCategoryControllerTest.php
| |-- ShopCouponControllerTest.php
| |-- ShopPaymentMethodControllerTest.php
| |-- ShopProducerControllerTest.php
| |-- ShopProductControllerTest.php
| |-- ShopProductSetsControllerTest.php
| |-- ShopPromotionControllerTest.php
| |-- ShopStatusesControllerTest.php
| |-- ShopTransportControllerTest.php
| `-- UsersControllerTest.php
`-- Integration/
Tryby uruchamiania
1. TestDox (czytelna lista)
./test.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar --testdox
2. Standard (kropki)
./test-simple.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar
3. Debug (pelne logowanie)
./test-debug.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar --debug
4. PowerShell (najbardziej niezawodne)
./test.ps1
- najpierw probuje
phpz PATH - jesli brak, probuje m.in.
C:\xampp\php\php.exe - zawsze dodaje
--do-not-cache-result
Interpretacja wynikow
. = test przeszedl
E = error (blad wykonania)
F = failure (niezgodna asercja)
Przyklad sukcesu:
................................................................. 65 / 82 ( 79%)
................. 82 / 82 (100%)
OK (82 tests, 181 assertions)
Dodawanie nowych testow
- Dodaj plik w odpowiednim module, np.
tests/Unit/Domain/<Module>/<Class>Test.php. - Rozszerz
PHPUnit\Framework\TestCase. - Nazwy metod zaczynaj od
test. - Trzymaj sie wzorca AAA: Arrange, Act, Assert.
Mockowanie (przyklad)
$mockDb = $this->createMock(\medoo::class);
$mockDb->method('get')->willReturn(42);
$repo = new ProductRepository($mockDb);
$value = $repo->getQuantity(123);
$this->assertEquals(42, $value);
Przydatne informacje
- Konfiguracja PHPUnit:
phpunit.xml - Bootstrap testow:
tests/bootstrap.php - Dodatkowy opis:
tests/README.md
Aktualizacja suite
Ostatnio zweryfikowano: 2026-02-12
OK (119 tests, 256 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/User/UserRepositoryTest.php(25 testow: CRUD, logon, 2FA verify/send, checkLogin, updateById)tests/Unit/admin/Controllers/UsersControllerTest.php(12 testow: kontrakty + normalizeUser)
Aktualizacja po migracji widokow Users (2026-02-12):
OK (120 tests, 262 assertions)
Aktualizacja suite (finalizacja Users)
Ostatnio zweryfikowano: 2026-02-12
OK (120 tests, 262 assertions)
Aktualizacja po migracji Languages (2026-02-12):
OK (130 tests, 301 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Languages/LanguagesRepositoryTest.phptests/Unit/admin/Controllers/LanguagesControllerTest.php
Aktualizacja suite (release 0.254)
Ostatnio zweryfikowano: 2026-02-12
OK (130 tests, 301 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Languages/LanguagesRepositoryTest.phptests/Unit/admin/Controllers/LanguagesControllerTest.php
Aktualizacja suite (release 0.255)
Ostatnio zweryfikowano: 2026-02-12
OK (130 tests, 303 assertions)
Aktualizacja suite (release 0.256)
Ostatnio zweryfikowano: 2026-02-12
OK (141 tests, 336 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Layouts/LayoutsRepositoryTest.phptests/Unit/admin/Controllers/LayoutsControllerTest.php
Zaktualizowane testy 2026-02-12:
tests/Unit/Domain/Languages/LanguagesRepositoryTest.php(defaultLanguageId)tests/Unit/admin/Controllers/ArticlesControllerTest.php(konstruktor + LayoutsRepository)
Aktualizacja suite (release 0.257)
Ostatnio zweryfikowano: 2026-02-12
OK (150 tests, 372 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Newsletter/NewsletterRepositoryTest.phptests/Unit/admin/Controllers/NewsletterControllerTest.php
Aktualizacja suite (release 0.258)
Ostatnio zweryfikowano: 2026-02-12
OK (150 tests, 372 assertions)
Aktualizacja suite (release 0.259)
Ostatnio zweryfikowano: 2026-02-12
OK (158 tests, 397 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Scontainers/ScontainersRepositoryTest.phptests/Unit/admin/Controllers/ScontainersControllerTest.php
Aktualizacja suite (release 0.260)
Ostatnio zweryfikowano: 2026-02-12
OK (165 tests, 424 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/Article/ArticleRepositoryTest.php(rozszerzenie o testyrestore,deletePermanently,listArchivedForAdmin)tests/Unit/admin/Controllers/ArticlesArchiveControllerTest.php
Aktualizacja suite (release 0.261)
Ostatnio zweryfikowano: 2026-02-13
OK (176 tests, 439 assertions)
Nowe testy/rozszerzenia 2026-02-13:
tests/Unit/Domain/Article/ArticleRepositoryTest.php(nowe przypadki dlapagesSummaryForArticles,updateImageAlt,markFileToDelete)tests/Unit/admin/Controllers/ArticlesControllerTest.php(nowe kontrakty dla akcjiimageAltChange,fileNameChange,imageDelete,fileDelete)
Aktualizacja suite (release 0.261)
Ostatnio zweryfikowano: 2026-02-13
OK (178 tests, 443 assertions)
Nowe testy/rozszerzenia 2026-02-13:
tests/Unit/Domain/Article/ArticleRepositoryTest.php(nowe przypadki dlasaveFilesOrder)
Aktualizacja suite (Pages migration)
Ostatnio zweryfikowano: 2026-02-13
OK (186 tests, 478 assertions)
Nowe testy dodane 2026-02-13:
tests/Unit/Domain/Pages/PagesRepositoryTest.phptests/Unit/admin/Controllers/PagesControllerTest.php
Zaktualizowane testy 2026-02-13:
tests/Unit/admin/Controllers/ArticlesControllerTest.php(konstruktor zDomain\\Pages\\PagesRepository)
Aktualizacja suite (Integrations refactor, ver. 0.263)
Ostatnio zweryfikowano: 2026-02-13
OK (212 tests, 577 assertions)
Nowe testy dodane 2026-02-13:
tests/Unit/Domain/Integrations/IntegrationsRepositoryTest.php(16 testow: getSettings, getSetting, saveSetting, linkProduct, unlinkProduct, getProductSku, apiloGetAccessToken, invalid provider, settings table mapping)tests/Unit/admin/Controllers/IntegrationsControllerTest.php(10 testow: kontrakty metod, return types, brak metod sellasist/baselinker)
Zaktualizowane pliki:
tests/bootstrap.php(dodany stubS::remove_special_chars())
Aktualizacja suite (ShopPromotion refactor, ver. 0.264)
Ostatnio zweryfikowano: 2026-02-13
OK (222 tests, 609 assertions)
Nowe testy dodane 2026-02-13:
tests/Unit/Domain/Promotion/PromotionRepositoryTest.php(6 testow: find default, save insert, delete, whitelist sortowania, drzewo kategorii)tests/Unit/admin/Controllers/ShopPromotionControllerTest.php(4 testy: kontrakty metod i DI konstruktora)
Aktualizacja suite (ShopPromotion fix + date_from, ver. 0.265)
Ostatnio zweryfikowano: 2026-02-13
OK (222 tests, 614 assertions)
Zmiany testowe 2026-02-13:
- rozszerzenie
tests/Unit/Domain/Promotion/PromotionRepositoryTest.phpo asercjedate_from
Aktualizacja suite (ShopCoupon refactor, ver. 0.266)
Ostatnio zweryfikowano: 2026-02-13
OK (235 tests, 682 assertions)
Nowe testy dodane 2026-02-13:
tests/Unit/Domain/Coupon/CouponRepositoryTest.php(8 testow: find default/normalize, save insert/update, delete, whitelist sortowania, drzewo kategorii)tests/Unit/admin/Controllers/ShopCouponControllerTest.php(5 testow: kontrakty metod, aliasy legacy, DI konstruktora)
Ponowna weryfikacja po poprawkach UI (drzewko + checkboxy): 2026-02-13
OK (235 tests, 682 assertions)
Aktualizacja suite (ShopStatuses refactor, ver. 0.267)
Ostatnio zweryfikowano: 2026-02-14
OK (254 tests, 736 assertions)
Nowe testy dodane 2026-02-14:
tests/Unit/Domain/ShopStatus/ShopStatusRepositoryTest.php(9 testow: find z ID=0, find null apilo, save update, save z ID=0, empty apilo sets null, reject negative ID, getApiloStatusId, getByIntegrationStatusId, allStatuses, whitelist sortowania)tests/Unit/admin/Controllers/ShopStatusesControllerTest.php(5 testow: kontrakty metod, brak aliasow legacy, return types, DI konstruktora)
Aktualizacja suite (ShopPaymentMethod refactor, ver. 0.268)
Ostatnio zweryfikowano: 2026-02-14
OK (280 tests, 828 assertions)
Nowe testy dodane 2026-02-14:
tests/Unit/Domain/PaymentMethod/PaymentMethodRepositoryTest.php(14 testow: find invalid/null/normalize, save update/null/non-numeric apilo, listForAdmin whitelist, allActive, allForAdmin, findActiveById, isActive, getApiloPaymentTypeId, forTransport)tests/Unit/admin/Controllers/ShopPaymentMethodControllerTest.php(5 testow: kontrakty metod, brak aliasow legacy, return types, DI konstruktora)
Aktualizacja suite (ShopTransport refactor, ver. 0.269)
Ostatnio zweryfikowano: 2026-02-14
OK (300 tests, 895 assertions)
Nowe testy dodane 2026-02-14:
tests/Unit/Domain/Transport/TransportRepositoryTest.php(14 testow: find invalid/null/normalize/nullables, save insert/update/failure/default reset/switch normalization, listForAdmin whitelist, allActive, getApiloCarrierAccountId, getTransportCost, allForAdmin)tests/Unit/admin/Controllers/ShopTransportControllerTest.php(5 testow: kontrakty metod, brak aliasow legacy, return types, DI konstruktora z 2 repo)
Aktualizacja suite (Apilo sync hardening, ver. 0.270)
Ostatnio zweryfikowano: 2026-02-14
OK (300 tests, 895 assertions)
Zmiany testowe 2026-02-14:
- brak nowych testow; pelna regresja po zmianach sync Apilo (TPAY -> Apilo) przeszla bez bledow
Aktualizacja suite (ShopAttribute refactor, ver. 0.271)
Ostatnio zweryfikowano: 2026-02-14
OK (312 tests, 948 assertions)
Nowe testy dodane 2026-02-14:
tests/Unit/Domain/Attribute/AttributeRepositoryTest.php(5 testow: domyslne dane cechy, whitelist sortowania/paginacji, zapis wartosci i domyslnej, usuwanie pustych tlumaczen, jezyk domyslny)tests/Unit/admin/Controllers/ShopAttributeControllerTest.php(7 testow: kontrakty metod, brak aliasow legacy, return types, DI konstruktora, walidacjavalidateValuesRows)
Aktualizacja suite (ShopProductSets refactor, ver. 0.272)
Ostatnio zweryfikowano: 2026-02-15
OK (324 tests, 1000 assertions)
Nowe testy dodane 2026-02-15:
tests/Unit/Domain/ProductSet/ProductSetRepositoryTest.php(7 testow: find default/normalize, save insert/update, delete invalid, whitelist sortowania/paginacji, allSets)tests/Unit/admin/Controllers/ShopProductSetsControllerTest.php(5 testow: kontrakty metod, aliasy legacy, return types, DI konstruktora)
Aktualizacja suite (ShopProducer refactor, ver. 0.273)
Ostatnio zweryfikowano: 2026-02-15
OK (338 tests, 1063 assertions)
Nowe testy dodane 2026-02-15:
tests/Unit/Domain/Producer/ProducerRepositoryTest.php(9 testow: find default/normalize, save insert/update, delete invalid/success, whitelist sortowania/paginacji, allProducers, producerProducts)tests/Unit/admin/Controllers/ShopProducerControllerTest.php(5 testow: kontrakty metod, aliasy legacy, return types, DI konstruktora)
Aktualizacja suite (ShopProduct mass_edit, ver. 0.274)
Ostatnio zweryfikowano: 2026-02-15
OK (351 tests, 1091 assertions)
Nowe testy dodane 2026-02-15:
tests/Unit/Domain/Product/ProductRepositoryTest.php(rozszerzenie:allProductsForMassEdit,getProductsByCategory,applyDiscountPercent)tests/Unit/admin/Controllers/ShopProductControllerTest.php(7 testow: kontrakty metod, return types, DI konstruktora)