codeigniter4 / codeigniter4/CodeIgniter4
Dev: Ensure tests are run in random
- 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
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