codeigniter4 / codeigniter4/CodeIgniter4

Dev: Ensure tests are run in random

Aberta
#9,968 4 comentários 1 reação 0 responsáveis Ver no GitHub
dev help wanted testing
Linguagem predominante
PHP
Estrelas
6k
Forks
2k
Merge médio
1d 11h
PRs com merge (30d)
73

Descrição

### PHP Version

8.5.0

### CodeIgniter4 Version

4.7.1-dev

Per [ChatGPT](https://chatgpt.com/s/t_69985949e68c8191af967ca124b1b7f7), tests need to run in random to enjoy the following benefits:

✔️ It reveals hidden dependencies
✔️ Forces true test isolation
✔️ Prevents flaky, misleading test results
✔️ Makes your test suite production-realistic

This issue has been initially tackled by #7717, but due to other complications it didn't fare well. As this is not a fairly easy task, I'm proposing we do it on pieces. Currently, our test suite runs in default order but should be random at some point (i.e., executionOrder="random").

Here's the plan, instead of one big PR changing all tests, we can do it by component (HTTP, Cache, Database, etc.). Then, after all tests run green on randomised testing, we set executionOrder in phpunit.xml to "random".

Please reference this issue for any PRs addressing pieces of this.

- [x] API: #9983
- [x] AutoReview: #10073
- [x] Autoloader: #10073
- [ ] Cache
- [x] CLI:
- #9998
- #10014
- [ ] Commands
- [ ] Config
- [x] Cookie: #10073
- [ ] Database
- [ ] DataCaster
- [ ] DataConverter
- [ ] Debug
- [ ] Email
- [ ] Encryption
- [ ] Entity
- [x] Events: #10073
- [x] Files: #10073
- [x] Filters: #10373
- [x] Format: #10073
- [ ] Helpers
- [ ] Honeypot
- [x] HotReloader: #10073
- [x] HTTP: #10372
- [ ] I18n
- [ ] Images
- [x] Language: #10073
- [x] Log: #10073
- [x] Pager: #10073
- [x] Publisher: #10073
- [x] RESTful: #10073
- [ ] Router
* #9967
- [x] Security
- #9969
- #10073
- [ ] Session
- [ ] Test
- [x] Throttle: #10073
- [x] Typography: #10073
- [ ] Validation
- [x] View: #10073

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece com phpunit.xml e com as áreas de componentes não marcadas listadas na issue; em seguida, execute os testes relevantes do PHPUnit com executionOrder="random" para identificar dependências da ordem de execução. Está concluído quando os testes do componente selecionado passam em ordem aleatória sem dependências ocultas; o esforço mais amplo estará concluído quando todas as áreas listadas estiverem verdes e phpunit.xml usar execução aleatória.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
php
Domínio
testing
Tipo de issue
Refatoração
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.