Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21660 > unrolled thread

Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found

Started bySimonex <simo@sumo.it>
First post2017-08-18 14:30 +0200
Last post2017-09-07 16:38 +0100
Articles 15 — 3 participants

Back to article view | Back to it.comp.www.php


Contents

  Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-08-18 14:30 +0200
    Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-04 11:44 +0200
      Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found fmassei@gmail.com - 2017-09-04 11:24 -0700
        Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-05 13:17 +0200
          Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found fmassei@gmail.com - 2017-09-05 05:26 -0700
            Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-05 15:04 +0200
              Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found fmassei@gmail.com - 2017-09-05 06:25 -0700
          Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Alessandro Pellizzari <shuriken@amiran.it> - 2017-09-05 17:58 +0100
            Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-05 19:28 +0200
              Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found fmassei@gmail.com - 2017-09-05 17:14 -0700
              Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Alessandro Pellizzari <shuriken@amiran.it> - 2017-09-06 10:15 +0100
                Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-06 19:13 +0200
                  Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Alessandro Pellizzari <shuriken@amiran.it> - 2017-09-07 10:12 +0100
                    Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Simonex <simo@sumo.it> - 2017-09-07 16:49 +0200
                      Re: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found Alessandro Pellizzari <shuriken@amiran.it> - 2017-09-07 16:38 +0100

#21660 — Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found

FromSimonex <simo@sumo.it>
Date2017-08-18 14:30 +0200
SubjectClass 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found
Message-ID<on6mla$1eo8$1@gioia.aioe.org>
+ cat SelTest.php
<?php
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class SelTest extends WebTestCase{
     function testAbc(){
         $client = static::createClient();

         $crawler = $client->request('GET', '/post/hello-world');

         $this->assertGreaterThan(
             0,
             $crawler->filter('html:contains("Hello World")')->count()
         );
    }
}

+ phpunit SelTest
PHP Fatal error:
   Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found

Cosa devo installare per usuffruire della classe
Symfony\Bundle\FrameworkBundle\Test\WebTestCase?

[toc] | [next] | [standalone]


#21687

FromSimonex <simo@sumo.it>
Date2017-09-04 11:44 +0200
Message-ID<ooj797$19ti$1@gioia.aioe.org>
In reply to#21660
Il 18/08/2017 14:30, Simonex ha scritto:
> + cat SelTest.php
> <?php
> use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
> 
> class SelTest extends WebTestCase{
>      function testAbc(){
>          $client = static::createClient();
> 
>          $crawler = $client->request('GET', '/post/hello-world');
> 
>          $this->assertGreaterThan(
>              0,
>              $crawler->filter('html:contains("Hello World")')->count()
>          );
>     }
> }
> 
> + phpunit SelTest
> PHP Fatal error:
>    Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found
> 
> Cosa devo installare per usuffruire della classe
> Symfony\Bundle\FrameworkBundle\Test\WebTestCase?

Niente?
Mi potete suggerire almeno strumenti alternativi per eseguire i test 
funzionali.

[toc] | [prev] | [next] | [standalone]


#21688

Fromfmassei@gmail.com
Date2017-09-04 11:24 -0700
Message-ID<3154f934-9728-4555-9a06-b286bc989c61@googlegroups.com>
In reply to#21687
On Monday, September 4, 2017 at 5:44:09 AM UTC-4, Simonex wrote:
> Il 18/08/2017 14:30, Simonex ha scritto:
> > + cat SelTest.php
> > <?php
> > use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
> > 
> > class SelTest extends WebTestCase{
> >      function testAbc(){
> >          $client = static::createClient();
> > 
> >          $crawler = $client->request('GET', '/post/hello-world');
> > 
> >          $this->assertGreaterThan(
> >              0,
> >              $crawler->filter('html:contains("Hello World")')->count()
> >          );
> >     }
> > }
> > 
> > + phpunit SelTest
> > PHP Fatal error:
> >    Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found
> > 
> > Cosa devo installare per usuffruire della classe
> > Symfony\Bundle\FrameworkBundle\Test\WebTestCase?
> 
> Niente?
> Mi potete suggerire almeno strumenti alternativi per eseguire i test 
> funzionali.
>

Io non uso Symfony da anni, quindi non ti so dire.
Il più esperto qui sul tema credo sia Alessandro, ma se non ha scritto
si vede che usa metodi differenti.
Personalmente, se vuoi sapere altri metodi, io non uso frameworks ma una
serie di script a volte chiamati in batch, visto che per quello che
sviluppo ha più senso: si scrive e legge più velocemente, e non ho
bisogno di interazione con generatori di documentazione, nel mio caso i
test devono passare tutti, altrimenti niente commit.
Il fatto è che, nella mia esperienza, ogni team di sviluppo si crea il
suo flow con i tools più adatti allo scopo, e che quindi è difficile
trovare un esperto di uno specifico metodo.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21689

FromSimonex <simo@sumo.it>
Date2017-09-05 13:17 +0200
Message-ID<oom13j$1u0o$1@gioia.aioe.org>
In reply to#21688
Il 04/09/2017 20:24, fmassei@gmail.com ha scritto:
 > Personalmente, se vuoi sapere altri metodi, io non uso frameworks ma una
 > serie di script a volte chiamati in batch, visto che per quello che
 > sviluppo ha più senso: si scrive e legge più velocemente, e non ho
 > bisogno di interazione con generatori di documentazione, nel mio caso i
 > test devono passare tutti, altrimenti niente commit.

Ma sono script scritti in bash o in php?
E per testare JS?
Selenium non è più compatibile con le nuove release di firefox

 > Il fatto è che, nella mia esperienza, ogni team di sviluppo si crea il
 > suo flow con i tools più adatti allo scopo, e che quindi è difficile
 > trovare un esperto di uno specifico metodo.

Quindi i framework non vanno più di moda

[toc] | [prev] | [next] | [standalone]


#21690

Fromfmassei@gmail.com
Date2017-09-05 05:26 -0700
Message-ID<4e318114-66ad-4080-a292-6a95f0f5f05f@googlegroups.com>
In reply to#21689
On Tuesday, September 5, 2017 at 7:17:10 AM UTC-4, Simonex wrote:
> Il 04/09/2017 20:24, fmassei@gmail.com ha scritto:
>  > Personalmente, se vuoi sapere altri metodi, io non uso frameworks ma una
>  > serie di script a volte chiamati in batch, visto che per quello che
>  > sviluppo ha più senso: si scrive e legge più velocemente, e non ho
>  > bisogno di interazione con generatori di documentazione, nel mio caso i
>  > test devono passare tutti, altrimenti niente commit.
> 
> Ma sono script scritti in bash o in php?
>

Entrambi.

> E per testare JS?
> Selenium non è più compatibile con le nuove release di firefox
> 

Non lo testo.

>  > Il fatto è che, nella mia esperienza, ogni team di sviluppo si crea il
>  > suo flow con i tools più adatti allo scopo, e che quindi è difficile
>  > trovare un esperto di uno specifico metodo.
> 
> Quindi i framework non vanno più di moda
>

Certo, come no. Solo che io sono uno di quelli che non ne usa uno per i
test.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21691

FromSimonex <simo@sumo.it>
Date2017-09-05 15:04 +0200
Message-ID<oom7cs$a4l$1@gioia.aioe.org>
In reply to#21690
Il 05/09/2017 14:26, fmassei@gmail.com ha scritto:
>> E per testare JS?
>> Selenium non è più compatibile con le nuove release di firefox
>>
> Non lo testo.
> 

In pratica i tuoi progetti non usano JS?

[toc] | [prev] | [next] | [standalone]


#21692

Fromfmassei@gmail.com
Date2017-09-05 06:25 -0700
Message-ID<b59eed5c-4e4e-4131-9631-1567285fcec4@googlegroups.com>
In reply to#21691
On Tuesday, September 5, 2017 at 9:04:32 AM UTC-4, Simonex wrote:
> Il 05/09/2017 14:26, fmassei@gmail.com ha scritto:
> >> E per testare JS?
> >> Selenium non è più compatibile con le nuove release di firefox
> >>
> > Non lo testo.
> > 
> 
> In pratica i tuoi progetti non usano JS?
>

Quello su cui sono ora no del tutto.
Ma anche negli ultimi due anni JS l'ho usato solo per scemenzine sul
frontend.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21693

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2017-09-05 17:58 +0100
Message-ID<f183diFkqg3U1@mid.individual.net>
In reply to#21689
On 05/09/2017 12:17, Simonex wrote:

> E per testare JS?
> Selenium non è più compatibile con le nuove release di firefox

Per testare JS l'unico modo è lanciare un browser headless e fornirgli 
comandi.

Non sono intervenuto perché non ho mai usato Symfony. Non ho idea di 
come si usino i bundle. :D E, onestamente, penso che ormai siano 
obsoleti e che bisognerebbe iniziare a lavorare con pacchetti packagist, 
invece che con roba dedicata per ogni framework, altrimenti ti trovi il 
pacchetto per Symfony, quello per Laravel, quello per Cake, quello per 
Zend, quello per...

Io normalmente usavo Guzzle per scaricare la pagina, e poi DOMQuery per 
verificare il contenuto, ma in realtà ho usato poco anche questo. Il 
grosso del mio lavoro negli ultimi 2 anni è stato lato API, quindi 
testavo direttamente il JSON e i response code.

Bye.

[toc] | [prev] | [next] | [standalone]


#21694

FromSimonex <simo@sumo.it>
Date2017-09-05 19:28 +0200
Message-ID<oommsi$19ev$1@gioia.aioe.org>
In reply to#21693
Il 05/09/2017 18:58, Alessandro Pellizzari ha scritto:
> 
> Per testare JS l'unico modo è lanciare un browser headless e fornirgli 
> comandi.
> 

In genere cosa si usa? Phantomjs?

> Non sono intervenuto perché non ho mai usato Symfony. Non ho idea di 
> come si usino i bundle. :D E, onestamente, penso che ormai siano 
> obsoleti e che bisognerebbe iniziare a lavorare con pacchetti packagist, 

Quindi anche tu niente FW?
Quindi vai di *composer require...* ?

> Io normalmente usavo Guzzle per scaricare la pagina, e poi DOMQuery per 
> verificare il contenuto, ma in realtà ho usato poco anche questo. Il 
> grosso del mio lavoro negli ultimi 2 anni è stato lato API, quindi 
> testavo direttamente il JSON e i response code.

Cioè?
Perdonami, sono ancora agli inizi :)

[toc] | [prev] | [next] | [standalone]


#21695

Fromfmassei@gmail.com
Date2017-09-05 17:14 -0700
Message-ID<1385830a-1151-4f68-b0ef-b9cff79b4dbd@googlegroups.com>
In reply to#21694
On Tuesday, September 5, 2017 at 1:28:54 PM UTC-4, Simonex wrote:
> Il 05/09/2017 18:58, Alessandro Pellizzari ha scritto:
> > Non sono intervenuto perché non ho mai usato Symfony. Non ho idea di 
> > come si usino i bundle. :D E, onestamente, penso che ormai siano 
> > obsoleti e che bisognerebbe iniziare a lavorare con pacchetti packagist, 
> 
> Quindi anche tu niente FW?
> Quindi vai di *composer require...* ?
> 

La "moda" è scegliere un FW minimale o quasi, e usare composer per le
librerie che servono. Ha più senso per la facilità d'utilizzo,
apprendimento più veloce, e leggerezza del codice.

> > Io normalmente usavo Guzzle per scaricare la pagina, e poi DOMQuery per 
> > verificare il contenuto, ma in realtà ho usato poco anche questo. Il 
> > grosso del mio lavoro negli ultimi 2 anni è stato lato API, quindi 
> > testavo direttamente il JSON e i response code.
> 
> Cioè?
> Perdonami, sono ancora agli inizi :)
>

Cioè lui ha del PHP e del JS (o webservices, comunque componenti fuori
dal controllo diretto) che "parlano" tramite JSON (che è una serializzazione
di oggetti JS). Lui scrive PHP e si testa solo le sue richieste/risposte.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21696

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2017-09-06 10:15 +0100
Message-ID<f19sl1F2gp6U1@mid.individual.net>
In reply to#21694
On 05/09/2017 18:28, Simonex wrote:

> Il 05/09/2017 18:58, Alessandro Pellizzari ha scritto:
>>
>> Per testare JS l'unico modo è lanciare un browser headless e fornirgli 
>> comandi.

> In genere cosa si usa? Phantomjs?

Di solito lascio quel lavoro ai frontender, se posso, ma sì, so che 
usavano PhantomJS, almeno per un po'.
Poi ci eravamo messi a scrivere un wrapper attorno a CasperJS e 
l'abbiamo messo open source:

https://github.com/DiceHoldingsInc/casperjs-php-driver

(non ci ho lavorato, quindi non ti so dire molto)

> Quindi anche tu niente FW?
> Quindi vai di *composer require...* ?

Ho usato prima Silex (ma senza i Symfony components) e poi Slim.
Sì, tendo a partire da un microframework e costruire sopra.
Di recente sto pensando di eliminare anche i DIC (tipo Pimple) e usare 
semplicemente un router e le classi PSR-7. :)

>> Io normalmente usavo Guzzle per scaricare la pagina, e poi DOMQuery 
>> per verificare il contenuto, ma in realtà ho usato poco anche questo. 
>> Il grosso del mio lavoro negli ultimi 2 anni è stato lato API, quindi 
>> testavo direttamente il JSON e i response code.
> 
> Cioè?
> Perdonami, sono ancora agli inizi :)

La tendenza degli ultimi anni è di separare completamente la business 
logic dalla UI, e farle comunicare tramite messaggi. Il modo più diffuso 
e semplice è di usare JSON come protocollo messaggi.

Così puoi fare il "lato server" nel linguaggio che vuoi e servi 
semplicemente dati (gestendo l'autenticazione, la formattazione, il 
filtraggio, ecc.).

E la UI la fai anche lei nel linguaggio che vuoi, anche se poi il 
frontend vero e proprio devi per forza farlo in JS (o Typescript o 
qualche altra cosa che transpila in javascript).

Bye.

[toc] | [prev] | [next] | [standalone]


#21697

FromSimonex <simo@sumo.it>
Date2017-09-06 19:13 +0200
Message-ID<oopab2$1r8p$1@gioia.aioe.org>
In reply to#21696
Il 06/09/2017 11:15, Alessandro Pellizzari ha scritto:
>> In genere cosa si usa? Phantomjs?
> 
> Di solito lascio quel lavoro ai frontender,

Frontender, cioè un gruppo utenti (o applicazioni) per testare 
l'interfaccia utente?

> se posso, ma sì, so che 
> usavano PhantomJS, almeno per un po'.
> Poi ci eravamo messi a scrivere un wrapper attorno a CasperJS e 
> l'abbiamo messo open source:
> 
> https://github.com/DiceHoldingsInc/casperjs-php-driver
> 
> (non ci ho lavorato, quindi non ti so dire molto)

<?php //tesr.php
require  'vendor/autoload.php';

$driver = new CasperJs\Driver();
$output = $driver->start('http://someurl.com')
     ->click('123')
     ->run();

$ php test.php

...non succede niente.
Ma cmq a cosa serve questo wrapper?

Comunque ho provato anche casperjs:

$ cat casper.js
//casper.js
var casper = require('casper').create();
casper.start('http://casperjs.org/');

casper.then(function() {
     this.assertTitle('casper');
     this.echo('First Page: ' + this.getTitle());
});

casper.thenOpen('http://phantomjs.org', function() {
     this.echo('Second Page: ' + this.getTitle());
     this.clickLabel('DOCUMENTATION');
});


casper.run();

$ casperjs casper.js
TypeError: undefined is not a function (evaluating 
'this.assertTitle('casper')')
Second Page: PhantomJS | PhantomJS
CasperError: Cannot dispatch mousedown event on nonexistent selector: 
xpath selector: //*[text()="DOCUMENTATION"]

[toc] | [prev] | [next] | [standalone]


#21698

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2017-09-07 10:12 +0100
Message-ID<f1cgsqFkusuU1@mid.individual.net>
In reply to#21697
On 06/09/2017 18:13, Simonex wrote:

> Il 06/09/2017 11:15, Alessandro Pellizzari ha scritto:

>> Di solito lascio quel lavoro ai frontender,
> 
> Frontender, cioè un gruppo utenti (o applicazioni) per testare 
> l'interfaccia utente?

Frontender = persona che sviluppa il frontend. Solitamente programmatori 
javascript che fanno anche html e css.

>> https://github.com/DiceHoldingsInc/casperjs-php-driver
>>
>> (non ci ho lavorato, quindi non ti so dire molto)
> 
> <?php //tesr.php
> require  'vendor/autoload.php';
> 
> $driver = new CasperJs\Driver();
> $output = $driver->start('http://someurl.com')
>      ->click('123')
>      ->run();
> 
> $ php test.php

Come ho detto, non ci ho lavorato molto, ma il senso è che gli passi le 
operazioni da fare (scrolla x, clicca y, aspetta n secondi, ecc.) e alla 
fine verifichi che quello che hai in $output corrisponda a quello che vuoi.

> ...non succede niente.
> Ma cmq a cosa serve questo wrapper?

A fare in PHP quello che faresti in javascript con casper. È un wrapper, 
appunto. :)

Bye.

[toc] | [prev] | [next] | [standalone]


#21699

FromSimonex <simo@sumo.it>
Date2017-09-07 16:49 +0200
Message-ID<oorma7$1pco$1@gioia.aioe.org>
In reply to#21698
Il 07/09/2017 11:12, Alessandro Pellizzari ha scritto:
> 
>>> https://github.com/DiceHoldingsInc/casperjs-php-driver
>>>
>>> (non ci ho lavorato, quindi non ti so dire molto)
>>
>> <?php //tesr.php
>> require  'vendor/autoload.php';
>>
>> $driver = new CasperJs\Driver();
>> $output = $driver->start('http://someurl.com')
>>      ->click('123')
>>      ->run();
>>
>> $ php test.php
> 
> Come ho detto, non ci ho lavorato molto, ma il senso è che gli passi le 
> operazioni da fare (scrolla x, clicca y, aspetta n secondi, ecc.) e alla 
> fine verifichi che quello che hai in $output corrisponda a quello che vuoi.
> 

+ cat test.php
<?php

require  'vendor/autoload.php';

$driver = new CasperJs\Driver();
$output = $driver->start('http://www.php.net/')
     ->click('Downloads')
     ->run();

// logging
file_put_contents(
     __DIR__.'/output.log',
     print_r($output,true)
);

if ( ! strpos($output->getHtml(), 'Old Stable')) {
     throw new Exception('Test fallito');
}


+ php test.php
PHP Fatal error:  Uncaught Exception: Test fallito in 
/mnt/common2/pending/fuctional/test.php:17


Perchè?
Sembra che click('Downloads') non abbia effetto :(

>> ...non succede niente.
>> Ma cmq a cosa serve questo wrapper?
> 
> A fare in PHP quello che faresti in javascript con casper. È un wrapper, 
> appunto. :)

Cmq non riesco a far funzionare neanche casperjs.
Hai letto l'ultima parte del mio post precedente?

[toc] | [prev] | [next] | [standalone]


#21700

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2017-09-07 16:38 +0100
Message-ID<f1d7eqFq4roU1@mid.individual.net>
In reply to#21699
On 07/09/2017 15:49, Simonex wrote:

> $output = $driver->start('http://www.php.net/')
>      ->click('Downloads')
>      ->run();

click() non prende del testo qualsiasi, ma dei selettori DOM. Non so se 
prenda XPath o selettori alla jQuery. Come ho detto: non ci ho messo mano.

> Cmq non riesco a far funzionare neanche casperjs.
> Hai letto l'ultima parte del mio post precedente?

Sì, ma, come dicevo, non usavo io casperjs. Non ti so aiutare.
Per questo tipo di test forse è meglio chiedere su un gruppo javascript.

Bye.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web