Pergunta

Eu estou apenas começando a experimentar phpunit em algum código existente. A convenção de nomenclatura que usamos é que a classe MyClass deve estar em MyClass.class.php. PHPUnit parece exigir que o arquivo deve ser chamado Minhaclasse.php.

Existe alguma maneira de contornar isso?

Eu notei que ao tentar gerar uma classe de teste esqueleto:

phpunit --skeleton-test MyClass.class

PHPUnit 3.3.4 by Sebastian Bergmann.

Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php".
Fatal error: Call to a member function getOutClassName() on a non-object in /usr/share/php/PHPUnit/TextUI/Command.php on line 470
Foi útil?

Solução

A sua não é um requisito, é apenas assumptive. Você pode escrever seus próprios estudos de casos.

Skeleton só faz um mock-up one "o caminho mais fácil" que faz com que funções binárias para todas as suas classes fictícios funções.

Além disso,

phpunit --skeleton-test MyClass  MyClass.class.php

Pode fazer o que quiser.

   Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>

--skeleton-class         Generate Unit class for UnitTest in UnitTest.php.
--skeleton-test          Generate UnitTest class for Unit in Unit.php.

então por esse raciocínio, se você não dizer que o arquivo da classe está em ele vai tentar adivinhar, se você dizer o que o arquivo classe se encontra, ele não vai adivinhar.

Outras dicas

Eu corri com um problema semelhante quando a classe um esqueleto está sendo gerado para se namespaced. Estou usando phpunit 3.5.6 a partir da linha de comando. O exemplo a documentação phpunit não funcionou para mim e eu não conseguia encontrar a resposta on-line por isso achei que partilhá-la aqui. Suponha que você tem classe Foo diretório dentro / my / dir e é declarada em um único arquivo foo.php assim o caminho completo para o arquivo de classe é /my/dir/Foo.php

Também supor que Foo é declarado o seguinte:

<?php

namespace my\space;
class Foo
{
    ...
}

A fim de gerar um teste esqueleto tenho a certeza que eu estava no diretório onde reside foo.php e então eu corri o seguinte comando:

user[/my/dir]$ phpunit --skeleton-test my\\dir\\Foo Foo.php

Isso chamou meu esqueleto para gerar. A chave estava escapando a barra invertida como a documentação do PHPUnit menciona namespaces mas mostra apenas uma barra invertida. Espero que isso ajude alguém.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top