Este repositório contém testes dos exercícios da Piscine Reloaded da 42. Abaixo você encontrará instruções detalhadas sobre como configurar, compilar e executar os testes para os exercícios.
/
├── .vscode/
│ ├── launch.json
│ └── tasks.json
├── [diretório dos exercícios]/
│ └── [subdiretórios dos exercícios]
├── tests/
│ ├── minunit.h
│ └── [arquivos de teste para cada exercício]
├── tests_build/
│ └── [binários compilados]
├── .gitignore
└── Makefile
Certifique-se de ter o compilador gcc
ou cc
instalado no seu sistema. Além disso, você precisará do make
para construir os projetos.
Para compilar todos os exercícios, execute o comando:
make all
Para limpar os arquivos compilados, execute:
make clean
Para limpar todos os arquivos compilados e binários, execute:
make fclean
Para limpar e recompilar todos os exercícios, execute:
make re
A variável EX
é usada para especificar qual exercício deve ser compilado. Por exemplo:
make EX=ex10
A variável TARGET
é usada para especificar o diretório alvo dos exercícios. A pasta pode ter qualquer nome. Por exemplo:
make TARGET=exercises
Para compilar um exercício específico para depuração, utilize a variável EX
:
make debug EX=ex09
Este comando compilará o exercício ex09
e o arquivo de teste correspondente test_ex09.c
, gerando um binário test_debug
no diretório tests_build
.
Para compilar todos os exercícios para depuração, execute o comando:
make debug
Este comando compilará todos os exercícios e seus respectivos arquivos de teste, gerando binários de depuração no diretório tests_build/debug
.
Para executar os testes, navegue até o diretório tests_build
e execute o binário gerado:
cd tests_build
./test_debug
Se você compilou vários testes usando make debug
, os binários de depuração estarão no diretório tests_build/debug
. Para executar um teste específico, navegue até o diretório e execute o binário correspondente:
cd tests_build/debug
./test_debug_exXX
Substitua exXX
pelo número do exercício que você deseja testar.
Para criar novos testes para os exercícios, siga o modelo abaixo. Este modelo utiliza a biblioteca minunit
para estruturar os testes.
Cada arquivo de teste deve seguir a estrutura abaixo:
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* test_exXX.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: [seu_nome] <[seu_email]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: [data_criacao] #+# #+# */
/* Updated: [data_atualizacao] ### ########.fr */
/* */
/* ************************************************************************** */
#include "minunit.h"
void function_to_be_tested(void);
MU_TEST(test_function_name)
{
// ARRANGE
int expected_result;
int actual_result;
// ACT
expected_result = expected_value;
actual_result = function_to_test(arguments);
// ASSERT
mu_assert_int_eq(expected_result, actual_result);
}
MU_TEST_SUITE(test_suite_name)
{
MU_RUN_TEST(test_function_name);
}
int main(void) {
MU_RUN_SUITE(test_suite_name);
MU_REPORT();
return MU_EXIT_CODE;
}
- Crie um novo arquivo de teste: O nome do arquivo deve seguir o padrão
test_exXX.c
, ondeXX
é o número do exercício. - Inclua os cabeçalhos necessários: Inclua os cabeçalhos padrão e o cabeçalho
minunit.h
. - Declare a função a ser testada: Declare a função que será testada.
- Implemente os testes: Utilize as macros do
minunit
para criar os testes. - Crie a suíte de testes: Agrupe os testes em uma suíte de testes.
- Implemente a função
main
: A funçãomain
deve executar a suíte de testes e gerar o relatório.
Veja um exemplo de teste para a função ft_strcmp
:
MU_TEST(test_ft_strcmp_s1_a_s2_a)
{
// ARRANGE
int expected_result;
int actual_result;
// ACT
expected_result = 0;
actual_result = ft_strcmp("a", "a");
// ASSERT
mu_assert_int_eq(expected_result, actual_result);
}
Siga este modelo para criar testes consistentes e bem estruturados para os exercícios da Piscine Reloaded.
O arquivo tasks.json
contém uma tarefa build
que pode ser usada para compilar os exercícios diretamente do VSCode. A tarefa detecta automaticamente o exercício com base no diretório ou arquivo atual.
O arquivo launch.json
está configurado para permitir a depuração dos exercícios. Certifique-se de que o binário test_debug
foi gerado antes de iniciar a depuração.