Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Iniciando nuestro proyecto

6/16
Recursos

Aportes 76

Preguntas 26

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para los usuarios de windows deben agregar al inicio php, quedando de la siguiente manera:

php vendor/phpunit/phpunit/phpunit

código para lo que va dentro de phpunit

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test Directory">
         <directory>tests</directory>
    </testsuite>
</phpunit>

Estoy usando Windos 10 y tuve que utilizar el comando así:

php vendor/phpunit/phpunit/phpunit

Además, tuve que crear el directorio tests de forma manual.

Después obtuve el mensaje: No tests executes; tal como en la clase.

Hola, para las personas que les sale un error tiene que instalar primero xml

sudo apt install php-xml

y luego si ejecutan el comando

composer require --dev phpunit/phpunit 

Exitos y Nunca Paren De Aprender

DATO IMPORTANTE
1-Para los que se hayan olvidado del curso previo a este (fundamentos de PHP) hay que iniciar el archivo de autoload con composer dump por eso sale un error en la consola a algunos.
2-Para los que estén en windows ejecuten php vendor/phpunit/phpunit/phpunit y funcionará
Adjunto una imagen del error en el punto 1:
![](

Iniciando nuestro proyecto

PHP, Composer, PHPUnit

<h3>Comenzando 🚀</h3>

Ahora vamos a seguir los siguientes pasos para dar inicio a nuestro proyecto y su configuración inical.

Agregamos phpunit con la consola abierta en la carpeta raiz que usaremos para el proyecto.

<h4>Ejecutamos en la consola 📋</h4>
composer require --dev phpunit/phpunit

Automátcamente composer crea la carpeta vendor/, y los archivos composer.json y composer.lock

Ahora vamos a configurar el archivo composer.json con el autoload, escribiendo los siguientes datos dentro del archivo composer.json

{
    "name": "sebasvillegas/validate",
    "description": "Proyecto de validación",
    "autoload": {
        "psr-4": {
            "App\\":"src/"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}
<h4>Instalación 🔧</h4>

Creamos el archivo phpunit.xml en la carpeta raíz

touch phpunit.xml

Escribimos en el archivo phpunit.xml la siguiente configuración

Esta es una configuración genérica.

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test Directory">
         <directory>tests</directory>
    </testsuite>
</phpunit>

Hay que tener en ceunta que debemos crear el directorio que referenciamos en la configuración del archivo anterior tests.

mkdir tests

En la carpeta vamos a crer las calses de prueba que vamos a trabjar o validadr

Creamos la clase con la que vamos a realizar el test con la siguiente estructura de nombre NombreClaseTest.php

test/NombreClaseTest.php

//Crea el archivo
touch tests/ValidateTest.php

//Abrir con Visual Studio Code
code tests/ValidateTest.php 

Ahora vamos a configurar la calse de configuración con el siguiente código

<?php

use PHPUnit\Framework\TestCase;
use App\Validate;

class ValidateTest extends TestCase
{
    public function test_email()
    {
        $email = Validate::email('[email protected]');
        $this->assertTrue($email);
    }
}

En este paso creamos la carpeta src/ a la que hace referencia el namespace App

mkdir src

luego creamos el archivo con la clase que vamos a usar, siguiendo la teoría de nombres, en este caso no le agregamos test al final: NombreClase.php.

//Crea el archivo
touch src/Validate.php

//Abre el archivo con vsCode
code src/Validate.php

_Escrivimos la clase con sus funciones como se muestra a continuación, retornando un boolean como validación o resultado del test. La función creada debe ser static function _

<?php

namespace App;

class Validate
{
     public static function email($value)
     {
        return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
     }
}

Finalmente ejecutamos la prueba en la consola con el siguiente comando

vendor/phpunit/phpunit/phpunit
<h3>Ejecutando las pruebas ⚙️</h3>

El comando anterior ejecutará la prueba y nos lanzará el mensaje de validación o error correspondeinte. Se sugiere por buenas practicas ejecutar la validación antes de crear la calse, y durante la creación de la calse, así nos aseguramos de reconocer el valor negativo o de error. Nos debe aparecer algo similar a lo que se muestra acá:

Error: Call to undefined method App\Validate::email()

C:\xampp\htdocs\prueba\tests\ValidateTest.php:10

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

Este sería el resultado al ejecutar el comando cuando la función se sncuentré creada correctamente

.                                                                   1 / 1 (100%)

Time: 00:00.060, Memory: 6.00 MB

OK (1 test, 1 assertion)
<h3>Construido con 🛠️</h3>

PHP, Composer, PHPUnit

  • PHP - Lenguaje del lado del servidor.
  • Composer - Manejador de dependencias
  • PHP Unit - Usado para pruebas unitarias
<h3>Contribuyendo 🖇️</h3> <h3>Autores ✒️</h3>

Este proyecto es una recopilación de una de las calses de @platzi, dictado por el profesor Italo Morales

  • Team Platzi - Videos y cursos - platzi
  • Italo Morales - Docente - [ @italomoralesf](#Curso de Manejo de Datos en PHP)
  • Sebastián Villegas - Documentación - @jsvjava
<h3>Expresiones de Gratitud 🎁</h3>
  • Gracias a Italo Morales, al Team Platzi y a todos los que participaron en la creación de los cursos🤓.

Un pequeño resumen

  1. instalar phpunit para iniciar el proyecto
composer required --dev phpunit/phpunit
  1. Configurar el archivo composer.json
  • Configurar nombre “proveedor/nombredelcomponenete”
  • Configurar descripción
  • Configurar autocarga con psr-4, para cargar archivos y clases.
  • Luego configurar el namespace para no estar configurando todas las rutas de forma manual
{
    "name": "damuelas/validate",
    "description": "Proyecto de validación",
    "autoload": {
        "psr-4": {
            "App\\": "src"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^9.4"
    }
}
  1. Dar de alta la configuración del autoload
composer dump
  1. Cuando se trabaja con pruebas en php se trabaja con una unidad llamada phpunit por ello se necesita crear el XML
  • Configurar archivo de arranque, el autoload
  • Colores que se muestren al momento de ejecutar
  • Textsuit → configurar carpeta en la que se va ha estar trabajando y se le pone un nombre cualquiera
  • nombre del directorio
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test Directory">
         <directory>tests</directory>
    </testsuite>
</phpunit>
  1. Para ejecutarlo
vendor/phpunit/phpunit/phpunit

Aún no se tienen test para ejecutarlos

  1. Crear carpeta tests
  • Dentro de está carpeta, creamos el archivo ValidateTest.php, el estandar dice que debe terminar en test.
<?php

use PHPUnit\Framework\TestCase;
use App\Validate;

class ValidateTest extends TestCase{
	public function test_email(){
		$email = Validate::email('[email protected]');
		$this->assertTrue($email);
	}
}
  1. Luego hacemos ejecutamos el comando, para las pruebas
vendor/phpunit/phpunit/phpunit

Debemos recibir un error por que no tenemos la clase Validate creada

  1. Creamos la carpeta src y ahi dentro la clase Validate.php
  • En donde se va ha realizar la validación del email, con el metodo y la clase
<?php

namespace App;

class Validate
{
    public static function email($value)
    {
        return (bool)filter_var($value, FILTER_VALIDATE_EMAIL);
    }
}
  1. Luego se prueba de nuevo con el comando y te realiza el test y ya saldria todo correcto por que ya se creó Validate.php, con esto se valida y se prueba nuestro codigo desde la terminal
vendor/phpunit/phpunit/phpunit

En el curso de Introducción a Laravel el maestro hace un gran proyecto con Testing, orientado a una API.

Siempre es muy útil realizar test, ya lo he comentado antes pero no está de más recordar que el programar usando tests te ayuda a evitarte dolores de cabeza buscando el error


Soy el único que se siente así? En el curso anterior, una de las preguntas era si “el asterisco era un operador aritmético” y ahora usan funciones anidadas en clases que dependen un paquete descargado con un framework. Entiendo el código (excepto los :😃, pero no sé para que sirve PHPunit, nunca lo explicaron en la ruta todavía.

Iniciando nuestro proyecto

Utilizaremos composer y phpunit

Lo primero que hacemos es requerir phpunit para el desarrollo

composer require --dev phpunit/phpunit

Luego de eso, modificamos el archivo composer.json y le agregamos un nombre, despcripcion y configuramos el autoload

{
    "name": "matias-ed/validate",
    "description": "proyecto de validacion",
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}

Creamos el archivo phpunit.xml donde especificamos en que carpeta se encuentran nuestros tests

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test directory">
        <directory>tests</directory> 
    </testsuite>
</phpunit>

Creamos la carpeta tests y dentro de ella creamos el archivo ValidateTest.php
obs: Es buena practica que los archivos de testing terminen en Test

    <?php

    use PHPUnit\Framework\TestCase;
    use App\Validate;

    class ValidateTest extends TestCase
    //TestCase es una clase de PHPUnit
    {
        public function test_email()
        {
            $email = Validate::email("[email protected]");
            //aqui llamamos al metodo email de la clase Validate que aun no hemos creado

            $this->assertTrue($email);
            //Es un metodo de TestCase
        }
    }

Por ultimo creamos nuestra carpeta src/ y adentro creamos nuestra clase Validate

    namespace App;

    class Validate
    {
        public static function email($value)
        {
            return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
        }
    }
    //filter_var es una funcion propia de php que me permite filtrar a mis variables
    //FILTER_VALIDATE_EMAIL es una constante propia de PHP

Si alguien con mac tiene el error de

No tests executed!

y tiene OSX Big Sur. Esto es debido a un problema con lo que devuelve la version de php que viene pre-instalada en mac ya que se agrego un texto mencionando que php sera eliminado en el futuro pero el mensaje esta concatenado a la version de php

php --version 7.3.22-(to be removed in future macOS)

y phpunit no reconoce la version al tener la cadena de caracteres “-(to be removed in future macOS)” en lugar de solo 7.3.22

La solución es instalar otra version de php usando el manejador de paquetes de mac Homebrew y actualizar el PATH.

$ brew install [email protected]7.4
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

Con eso ya me funciono.

Al principio no me funcionaba el comando: vendor/phpunit/phpunit/phpunit.
Por lo tanto decidi primero abrir mi terminal de ubuntu en windows
y ejecutar los siguientes comandos

sudo apt-get update
sudo apt-get install php-xml

Lo anterior para instalar php-xml.

Luego dirigirme al editor Code y comenzar a ejecutar los comandos del profesor.

composer require --dev phpunit/phpunit
luego
composer dump
Luego
php vendor/phpunit/phpunit/phpunit
Finalment, todo fue resuelto.

este curso deberia ir después del curso de PHP orientada a objetos

Me perdí

Wow me tomo 2 dias entender esto de los asserts, los namespaces, y hasta eso del return tipo boleano, que no lo sabia pero ahora que conozco lo que no sabias antes ves todo mas sencillo y casi mas facil pero no menos complejo solo entiendes mas, Genial !.

No me funcionaba hasta que hice:

-renombrar carpeta tests por test

-ejecutar composer dump

-ejecutar php vendor/phpunit/phpunit/phpunit

De qué me perdí, venía tranqui hasta la clase pasada pero todo cambió?

ESTO EN EL ValidateTest
<?php

use PHPUnit\Framework\TestCase;
use App\Validate;
class ValidateTest extends TestCase
{
public function test_email()
{
$email = Validate::email(‘[email protected]’);
$this->assertTrue($email);
}
}

Y esto en Validate
<?php

namespace App;

class Validate
{
public static function email($value)
{
return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
}

}

Y me sale esto:
There was 1 error:

  1. ValidateTest::test_email
    Error: Class ‘App\Validate’ not found

C:\xampp\htdocs\phpUnit\tests\ValidateTest.php:9

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

😀 Cuando utilizamos composer y PHPUnit estamos entregando un código reusable y escalable.

Este fue el resultado:

es frustrante ver que el profesor supone que a todos les funciona a la primera y no da ninguna idea de como solucionar los posibles problemas que se puedan encontrar con tanta configuración.
Finalmente a pesar de leer todas las ayudas que los demàs dejan no pude hacer correr lo necesario. Asì que dejo el curso hasta aquí, una pena.

Me aparecía este error

 vendor/phpunit/phpunit/phpunit

Could not load "/Applications/XAMPP/xamppfiles/htdocs/proyecto/phpunit.xml".

parsing XML declaration: '?>' expected

Con el archivo xml como

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test directory">
        <directory>test</directory>
    </testsuite>
</phpunit>

después de intentar y buscar por unos días encontré los argumentos que puede llevar esa linea y se le agrego el de standalone que según entendí indica si este archivo es independiente o no de otros archivos

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test directory">
        <directory>test</directory>
    </testsuite>
</phpunit>

Y así funciono el archivo xml del curso.

PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

No tests executed!

Esto trabajando en mac. Saludos

Fui terco en cambiarme de Windows a Linux, pero ahora que me mude todos los cursos los hago rapiditos! Ya tengo todo preconfigurado!

En mi caso con phpunit 9.5.19 yo tuve que crear mi primero la carpeta tests porque me daba un error de test folder not found

Usuarios windows para ejecutar phpunit en la terminal:

php vendor/phpunit/phpunit/phpunit

Tremenda clase de TDD en apenas 12 minutos!

Me devolví despues de terminar el curso porque en un principio no entendí del todo esta clase y la siguiente, en cambio, ahora tampoco la entendí. Bueno no al 100%.

Considero que estos temas de composer y vendors deberian tener ciertas bases primero de programacion orientado a objetos porque ponen temas de clases y herencias en este curso de PHP Básico igualmente tambien veo estoo, en el otro curso de supuestamente Introducción

Si alguien tenia la curiosidad de como funciona el namespace o que era. Les dejo la documentacion https://www.php.net/manual/en/language.namespaces.rationale.php

Veo este video y recuerdo varias de mis dudas al iniciar con laravel, muy buen curso,

Tengo entendido que es

vendor/phpunit/phpunit/phpunit

Por que es del proveedor “phpunit”, el proyecto “phpunit” y el archivo/carpeta a ejecutar es phpunit.

Alguien sabe si es esto es correcto o estoy malinterpretando algo?

Si usan el editor Visual Studio Code, instalen la extensión XML Language Support by Red Hat
Para que cierre las etiquetas de forma automática.

Quién lo diría que esro me salvó:
Si tienen problema con que Visual Studio Code no detecta el use de PHPUnit simplemente cierra tu Visual Studio Code, espera unos segundos y reinícialo, suele quitarse ese problema.

para los q usan cmd el comando correcto es:
composer require phpunit/phpunit

ACTUALIZACIÓN DE SOPORTE: Puntos que creo que son importantes para la gente que no tiene ni idea de PHP o que viene con la ruta y de pronto se ha topado con pared.

  1. PRIMERO QUE NADA, si no entiendes es normal que te sientas frustrado, tranquilo, si no entiendes las clases, los asserts y todo eso, son cosas un poco más avanzadas, revisa el curso de POO eso ayudará mucho, y regresa a este curso todo se aclarara mucho. Si aún así tienes problemas, responde a este mensaje y trataré de responder lo más rápido que pueda, pero intenta hilar las cosas por tu cuenta primero, es parte de avanzar como desarrollador.
  2. USUARIOS DE WINDOWS Si tienes problemas con el comando de la terminal para ejecutar las pruebas lo más conveniente es que tengas instalado git bash; se instala con Git, ya que si estás con la CMD de Windows vas a batallar y lo conveniente sería que aprendas línea de comandos “tipo Linux” :v
  3. Si tienen problema con que Visual Studio Code no detecta el use de PHPUnit simplemente cierra tu Visual Studio Code, espera unos segundos y reinícialo, suele quitarse ese problema.
  4. Conviene instalarse la extensión de Visual Studio Code llamada PHP Intelephense, les dejo el link acá: https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client

Espero que les sirva y que tengan paciencia, pasara mucho que no entiendan algo y lo mejor es eso, ser paciente y buscar el porque a cada cosa. Éxito!

Si a alguien le sigue saliendo el error de:

1) ValidateTest::test_email
Error: Class 'App\Validate' not found
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

Y ya hizo lo de

composer dump

Y ya revisó que el contenido de los archivos está bien, el problema puede ser que las carpetas no están correctamente organizadas.

Por ejemplo, yo tenía todo bien y todo exactamente igual, pero tenía la carpeta src dentro de tests, cuando tenía que ir fuera.

me sale este warning:

Package sebastian/resource-operations is abandoned, you should avoid using it. No replacement was suggested

como lo podría solucionar, lo probé con php 8 y php 7 y me sigue saliendo el mismo mensaje

buen aporte:

Las clases de prueba deben terminación 'test’
y las clases que deseamos probar no deben tener la palabra test

para los que tengan este problema : " PHPUnit requires the “dom” extension. " ;
se soluciona con este comando desde la terminal de wsl : sudo apt install php-xml

Cómo iniciar composer usando PHPUnit para test de códigos en PHP

https://desarrolloycreo.blogspot.com/2021/11/como-iniciar-composer-usando-phpunit.html

Al realizar el comando en Windows
php vendor/phpunit/phpunit/phpunit
me aparecía un error de que el test directory no se encontraba. Solo era crear la carpeta tests para que ahora si me apareciera el mensaje en amarillo de no tests executed.

Esta clase fue de mucha ayuda

En mi caso cambié de computador entre el curso de Composer y este. Si tienes un caso similar o formateaste la máquina entre otras variables, es importante que instales composer, cierras VC, lo abres nuevamente, ejecutas composer require --dev phpunit/phpunit y debe funcionar sin problema.

configuracion de validate.php

Configuración de ValidateTest.php

configuración de xml

Si después de ejecutar el comando:

composer require --dev phpunit/phpunit 

les muestra error (sobre todo usuarios linux) necesitan instalar php-xml de la siguiente manera:

sudo apt install php-xml

y si les sigue mostrando error, adicionalmente puede que necesiten instalar también:

sudo apt install php-mbstring

Espero les ayude. ¡A seguir aprendiendo!

A mi me daba error, pero lo solucioné cambiando el nombre de la carpeta tests a test.

En Windows 10 primero tienen que crear la carpeta tests dentro de la raíz, para eso ejecutamos en la terminal

mkdir tests

Y finalmente ejecutamos la sentencia de la clase

php vendor/phpunit/phpunit/phpunit

Estoy usando Windows 10 con WSL Ubuntu 20.04 y la consola no reconocía primero los comandos de composer. Lo solucioné agregando la siguiente línea al archivo .bashrc

  1. Abrimos el documento
nano ~/.bashrc
  1. Agregamos al inicio del archivo la siguiente línea:
alias composer='cmd.exe /c composer'

Otro error que tuve fue al correr el comando vendor/phpunit/phpunit/phpunit, generando el siguiente output:

Command 'php' not found, but can be installed with:
sudo apt install php7.4-cli

Aquí hago un paréntesis, ya que estoy usando xampp con php 8.0.X y no me generó ningún error al correr el comando sugerido, aunque si me quede con la duda de la diferencia de versiones. Aquí corremos el comando mencionado anteriormente.

sudo apt install php7.4-cli

Después al volver a correr vendor/phpunit/phpunit/phpunit obtenía el siguiente error:

Class 'DOMDocument' not found

Este fue solucionado con el siguiente comando, que encontré aquí mismo en los comentarios:

sudo apt install php-xml 

Fue duro, al final lo logre, trabajando con wsl2 se debe instalar adicionalmente las librerías para xml y actualizar la versión de composer, sude con esta clase pero me gusto bastante!

para los que esten usando WSL deben instalar la versión de xml correspondiente a su versión de php tambien, por ejemplo esto:

sudo apt install php-xml
descargará la ultima versión compatible con la ultima de php, pero si tienen versiones anteriores deben hacer por ejemplo:
sudo apt install php7.4-xml

No se porque solo obtengo No tests executed si al profesor le dice que el test si corrio

yo tube que crear antes la carpeta solita de test ya que al correr el comando de. vendor/phpunit/phpunit/phpunit me decia.
sebastian bergmann and contributors tests no fund.

Hola, alguien tiene el repositorio de este proyecto en git, especificamente en este punto donde configura phpunit? estoy atascado. Gracias

Al escribir

$ composer require --dev phpunit/phpunit

Me sale este error y no se instala el phpunit

Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2.0 is about to be released and the older 1.x releases will self-update directly to it once it is released. To avoid surprises update now to the latest 1.x version which will prompt you before self-updating to 2.x.

Using version ^9.4 for phpunit/phpunit
./composer.json has been created
Loading composer repositories with package information
Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2.0 is about to be released and the older 1.x releases will self-update directly to it once it is released. To avoid surprises update now to the latest 1.x version which will prompt you before self-updating to 2.x.
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit 9.4.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 9.4.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - Installation request for phpunit/phpunit ^9.4 -> satisfiable by phpunit/phpunit[9.4.0, 9.4.1].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.4/cli/php.ini
    - /etc/php/7.4/cli/conf.d/10-opcache.ini
    - /etc/php/7.4/cli/conf.d/10-pdo.ini
    - /etc/php/7.4/cli/conf.d/20-calendar.ini
    - /etc/php/7.4/cli/conf.d/20-ctype.ini
    - /etc/php/7.4/cli/conf.d/20-exif.ini
    - /etc/php/7.4/cli/conf.d/20-ffi.ini
    - /etc/php/7.4/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.4/cli/conf.d/20-ftp.ini
    - /etc/php/7.4/cli/conf.d/20-gettext.ini
    - /etc/php/7.4/cli/conf.d/20-iconv.ini
    - /etc/php/7.4/cli/conf.d/20-json.ini
    - /etc/php/7.4/cli/conf.d/20-mbstring.ini
    - /etc/php/7.4/cli/conf.d/20-phar.ini
    - /etc/php/7.4/cli/conf.d/20-posix.ini
    - /etc/php/7.4/cli/conf.d/20-readline.ini
    - /etc/php/7.4/cli/conf.d/20-shmop.ini
    - /etc/php/7.4/cli/conf.d/20-sockets.ini
    - /etc/php/7.4/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.4/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.4/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.4/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, deleting ./composer.json.

A qué curso anterior se refiere Ítalo?

Aspectos relevantes en PHP
Composer y PHPUnit

de Dummy a Tech Leader en 3 2 1. fuck!!!

Excelente

Las pruebas de software son muy importantes a la hora de desarrollar. A tener en cuenta esto

Para los que tiene problemas seguir lo siguiente:
Install:
https://getcomposer.org/download/
Antes de instalar tomar en cuenta que debes tener cerrado Xampp y VSC

Luego correr este:

composer require --dev phpunit/phpunit ^7

Archivos
composer.json

{	
	"name": "danny/validate",
	"description": "Proyecto de Validación",
	"autoload": {
		"psr-4": {
			"App\\": "src/"
		}
	},
    "require-dev": {
        "phpunit/phpunit": "^7"
    }
}

phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="Test Directory">
         <directory>tests</directory>
    </testsuite>
</phpunit>

ValidateTest.php

<?php

use PHPUnit\Framework\TestCase;
use App\Validate;

class ValidateTest extends TestCase{
	public function test_email(){
		$email = Validate::email('[email protected]');
		$this->assertTrue($email);
	}
}

validate.php

<?php

namespace App;

class Validate{
	public static function email($value){
		return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
	}
}
"name": "italo/validate",
    "description": "Proyecto de practica profesional en php",
  

les recomiendo que cuando configuren el nombre de autoload lo ponga en minisculas.

  1. validateTest::test_email
    Error: Class ‘App\Validate’ not found

C:\xampp\htdocs\iniciar_proyecto\tests\ValidateTest.php:9

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

nota
porque sigo teniendo este error aun ya creando la carpeta src y dentro de ella Validate.php ,tengo phpuni 8.5

Si tiene el siguiente error:

ValidateTest::test_email
Error: Class 'App\Validate' not found

Ejecuten en su consola:

composer dump

INICIAR EL PROYECTO CON:

  1. composer require --dev phpunit/phpunit

  2. rellenar el composer.json

  3. crear un archivo, a nivel del vendor, phpunit.xml

  4. llenar el phpunit.xml

  5. en consola escribir vendor/phpunit/phpunit/phpunit

  6. y debe salir “No tests executed”

  7. en caso funca escribir: composer dump

EN WINDOWS:

  1. composer require --dev phpunit/phpunit

  2. rellenar el composer.json

  3. crear un archivo, a nivel del vendor, phpunit.xml

  4. llenar el phpunit.xml

  5. crear la carpeta test a nivel del vendor

  6. en consola escribir: php vendor/phpunit/phpunit/phpunit

  7. y debe salir “No tests executed”

  8. en caso no funca escribir: composer dump

En mi caso, estoy usando Windows, pero me daba error al no tener la carpeta ‘tests’ la cree y ya pude continuar de manera normal.

Me hubiera gustado una explicación mas extensa y minuciosa de esta clase con PHPUnit. Tengo confianza que en las siguientes clases reforzaremos todo esto.

Gracias por el aporte!

continuara!!!

Pregunta!
¿Alguien me puede explicar a qué se refiere en el minuto 4:10 dónde dice que carga lo mismo que cargaba en el archivo index?

Gracias!

Si por A o B no les sale incluso cuando usan: "php vendor/phpunit/phpunit/phpunit"
Solo creen la carpeta test en el mismo nivel que la carpeta Vendor, le dan al comando anterior y listo!!!

Para los que esten versionando en git, lei en el gitignore de laravel que tanto la carpeta vendor como el archivo cache se ignoran

Alguien est’a usando TDD, excelso!