Eu queria saber se alguém que tem experiência em ambas as coisas pode lançar alguma luz sobre a diferença significativa entre os dois, se houver?
Alguma força específica de cada uma que a torne adequada para qualquer caso específico?
Eu queria saber se alguém que tem experiência em ambas as coisas pode lançar alguma luz sobre a diferença significativa entre os dois, se houver?
Alguma força específica de cada uma que a torne adequada para qualquer caso específico?
Respostas:
Essa pergunta é bastante antiga, mas como ainda está recebendo tráfego e respostas, embora eu tenha afirmado meu argumento aqui novamente, mesmo assim já o fiz em outras questões (mais recentes).
Estou realmente muito confuso que o SimpleTest ainda seja considerado uma alternativa ao phpunit. Talvez eu esteja mal informado, mas até onde eu vi:
web interface to phpunit tests
.Ainda não vi nenhum argumento a favor do SimpleTest. Não é nem mais simples de instalar, pois o PHPUnit está disponível via pear:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
e o "primeiro teste" parece praticamente o mesmo.
Como PHPUnit 3.7
é ainda mais fácil instalá- lo, basta usar oPHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
ou para o Windows apenas baixando o phar e executando:
php phpunit-.phar
ou ao usar o compositor suportado, instale maneiras como
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
ao seu compositor.json.
Para tudo que você deseja testar, o PHPUnit terá uma solução e você poderá encontrar ajuda em praticamente qualquer lugar (SO, #phpunit canal irc no freenode, praticamente todos os desenvolvedores de php;))
Por favor, corrija-me se afirmei algo errado ou esqueci algo :)
Vídeo: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Slides: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Ele menciona coisas como Atoum, que se autodenomina: "Uma estrutura de teste de unidade simples, moderna e intuitiva para PHP!"
Originalmente, escrevi essa resposta em janeiro de 2011, onde não tinha afiliação a nenhum projeto de teste de PHP. Desde então, me tornei um colaborador do PHPUnit.
include
os arquivos .PHP do SimpleTest (como outros explicaram). Para programadores profissionais que desenvolvem seu próprio ambiente de teste, o PHPUnit parece difícil de superar, mas se integrar um sistema de teste a um aplicativo de código aberto baseado em PHP, em que "desenvolvedores" para o aplicativo possam ser, na melhor das hipóteses (o que eu chamo) "programadores ocupacionais" , a simplicidade do SimpleTest tem um apelo real, para mim de qualquer maneira. FWIW.
Prefiro o PHPUnit agora, mas quando comecei, usei o SimpleTest, pois nem sempre tinha acesso à linha de comando. O SimpleTest é legal, mas a única coisa que realmente tem sobre o PHPUnit, na minha opinião, é o web runner.
As razões pelas quais eu gosto do PHPUnit são que ele se integra a outras ferramentas de desenvolvedor PHP, como phing (como o SimpleTest), phpUnderControl e Xinc . A partir da versão 3.0, ele possui suporte de simulação , está sendo desenvolvido ativamente e a documentação é excelente.
Realmente, a única maneira de responder a essa pergunta é experimentar as duas por um tempo e ver qual se encaixa melhor no seu estilo.
EDIT: Phing agora também se integra ao SimpleTest.
No entanto, eu poderia entender facilmente como instalar o SimpleTest.
(Tanto quanto me lembro, as instruções para o PHPUnit disseram algo como "instalá-lo via PEAR e não daremos nenhuma instrução sobre como fazê-lo de outra maneira"):
Para o SimpleTest , faça o download e aponte para ele a partir do seu código.
Então, o Simpletest venceu por mim.
Baphled tem um bom artigo sobre SimpleTest vs PHPUnit3 .
Metade dos pontos mencionados na resposta aceita simplesmente não é verdadeira:
O SimpleTest possui
A desvantagem:
Eu achei o SimpleTest ainda mais fácil do que o PHPUnit de configurar. Basta extraí-lo e você está pronto para ir. Uma vantagem disso é se você estiver trabalhando em mais de uma máquina, pois é possível armazenar toda a estrutura de teste da mesma maneira que o seu código-fonte e, assim, saber que está usando o mesmo código da estrutura. Especialmente se você modificá-lo de alguma forma.
Então, eu diria que o ponto forte do SimpleTest é que ele é muito leve e portátil.
O SimpleTest também é fornecido com uma GUI HTML muito simples, que é bastante fácil de estender, se você desejar. Até onde eu sei, o PHPUnit não inclui uma GUI HTML, mas existem GUI: s disponíveis para download, como o Cool .
Bem, eu criei um executor de casos de teste de interface do usuário baseado em web phpUnit e o disponibilizei no sourceforge. Usa ajax e tem uma interface bem legal também, se você quiser testar, verifique no sourceforge. O nome do projeto é phpunitwebui e o site é http://phpunitwebui.sourceforge.net/
Como foi apontado, é principalmente uma opção de preferência, pois ambos executam os testes que você escreve e relatam os resultados.
A interface da web da Web mais simples é muito útil, mas às vezes também pode ficar complicada. No meu projeto atual, eu teria que colocar mais trabalho em um sistema para fazer meu aplicativo (uma API) funcionar com a interface da web (configurar o apache corretamente, copiar arquivos para a raiz public_html, etc.) do que seria simplesmente executar o phpunit no espaço de trabalho do eclipse. Portanto, eu escolho o PHPUnit. Além disso, o uso do PEAR foi uma grande vantagem, pois você não precisa rastrear manualmente as atualizações. Basta executar de pear upgrade
vez em quando e o PHPUnit será mantido atualizado.
Isso é do ponto de vista de um desenvolvedor PHP muito casual:
Levei dois dias para entender o PHPUnit, principalmente tentando depurar no Eclipse que finalmente desisti.
Levei duas horas para configurar o Simpletest, incluindo a depuração no Eclipse.
Talvez eu encontre as falhas do Simpletest no futuro, mas até agora ele faz bem o que eu preciso: TestClasses, objetos Mock, depuração de código de teste e interface da Web para obter um instantâneo rápido da situação.
Novamente: Isso do ponto de vista de um usuário PHP muito casual (nem mesmo desenvolvedor :-)
Não checo o Simple Test há algum tempo, da última vez que ele teve um plug-in do eclipse, o que é um fator importante para mim, mas não é atualizado há muito tempo. Sebastian Bergmann ainda está trabalhando ativamente no PHPUnit, mas ainda não possui um bom plugin para eclipse - mas está incluído no novo Zend Studio.
Essa pergunta é antiga, mas quero acrescentar minha experiência: o PHPUnit parece ser o padrão agora, mas se você trabalha com um sistema legado que usa muitas e muitas variáveis globais, pode ficar preso desde o início. Parece que não há uma boa maneira de fazer testes com vars globais no PHPUnit, você parece ter que definir suas variáveis via $ GLOBALS, o que não é bom se você tiver vários arquivos configurando variáveis globais em todos os lugares. OK, alguns podem dizer que o problema está no sistema legado, mas isso não significa que não podemos fazer testes nesse sistema. Com o SimpleTest, isso é simples. Suponho que se o PHPUnit nos permite incluir um arquivo globalmente, não dentro de nenhum escopo de classe / função, isso também não seria um problema.
Outra solução promissora é http://www.enhance-php.com , parece legal :)
<phpunit backupGlobals="false">
no XML de configuração e nunca tive qualquer problema com globals em testes ...
global $xxx
e todas as suas combinações, antes de tentar --no-globals-backup
e de repente ver tudo trabalhando como esperado. : D
quando existem milhares de funções para testar de uma só vez, o phpunit está a caminho, o teste simples está aquém da sua base na Web.
Ainda estou usando a web simples para teste em pequena escala.
Mas ambos são bons