Testes

Testes em PHP

Chamilo utiliza PHPUnit para testes de backend.

Configuração do Banco de Dados de Teste

Os testes requerem um banco de dados dedicado. Crie o arquivo .env.test.local com as credenciais do seu banco de dados de teste:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

Em seguida, inicialize o banco de dados de teste:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

Para redefinir após alterações no esquema:

php bin/console --env=test doctrine:schema:update --force --complete

Executando Testes

Localização dos Testes

Os testes estão no diretório tests/:

Tipos de Testes

  • Testes de Unidade/Integração — Testes com PHPUnit em CoreBundle/ e CourseBundle/; a maioria acessa um banco de dados real (via dama/doctrine-test-bundle)

  • Testes Funcionais (API) — Estendem AbstractApiTest e testam endpoints HTTP de ponta a ponta

  • Testes Behat — Testes de aceitação no nível do navegador em tests/behat/features/ (veja abaixo)

Testes Behat (Ponta a Ponta)

Chamilo possui um conjunto de testes Behat para testes de aceitação no nível do navegador. É necessário ter uma instância do Chamilo em execução, além do Chrome e do ChromeDriver.

Configure a URL base em tests/behat/behat.yml antes de executar.

Verificações de Frontend

Qualidade de Código PHP

Chamilo utiliza ECS (Easy Coding Standard), PHPStan e Psalm para qualidade de código. Atalhos do Composer estão disponíveis para cada um:

Nota: não há php-cs-fixer neste projeto. ECS (symplify/easy-coding-standard) é a ferramenta de estilo de código.

Integração Contínua

Pull requests são verificados automaticamente por quatro fluxos de trabalho do GitHub Actions:

Fluxo de Trabalho
O que executa

phpunit.yml

Conjunto de testes PHPUnit

format_code.yml

Verificação de estilo de código com ECS

php_analysis.yml

Psalm, validação de esquema Doctrine, verificador de segurança

behat.yml

Testes de ponta a ponta com Behat

Última atualização

Isto foi útil?