Newsgroup: it.comp.www.php
Titolo: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found

+ 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!

Il 04/09/2017 20:24, 
fma...@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

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

 
 
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!

 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.

 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!

 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.

 (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"]
 

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

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

 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.