Pergunta

Alguém pode me sugerir algum bom teste automatizado suite framework para a linguagem Perl?

Foi útil?

Solução

Ela realmente depende do que você está tentando fazer, mas aqui está algumas de fundo para grande parte deste.

Primeiro, você geralmente escreva o seu teste de programas com Test::Mais ou Test::Simples como o núcleo do programa de testes:

use Test::More tests => 2;

is 3, 3, 'basic equality should work';
ok !0, '... and zero should be false';

Internamente, o Test::Construtor é chamado a saída dos resultados do teste como TOQUE (Teste Qualquer Coisa Protocolo).Teste::Chicote de fios (um wrapper fino em redor de TOQUE::Arnês), lê e interpreta o TOQUE, dizendo se o teste passou ou falhou.A "provar" a ferramenta acima é fornecido com Test::Chicote, então vamos dizer que salvar o acima em t/ diretório (o padrão do Perl de testes de diretório) como "números.t", em seguida, você pode executá-lo com este comando:

prove --verbose t/numbers.t

Ou para executar todos os testes em que directórios (recursivamente, supondo que você deseja descer em subdiretórios):

prove --verbose -r t/

(--verbose, é claro, é opcional).

Como uma nota lateral, não use TestUnit.Muitas pessoas recomendam-lo, mas ele foi abandonado há muito tempo e não se integra com modernas ferramentas de teste.

Outras dicas

Confira CPAN Testadores, que tem um monte de ferramentas para automação de testes.Mais do que deve ser no CPAN, então você vai ser capaz de modificá-lo para atender às suas necessidades.É também muito fácil escrever o seu próprio testador, usando TOQUE::Chicote.

O que exatamente você precisa fazer e como você está tentando encaixar em seu processo?

Enquanto você estiver usando testes que produzem TOQUE (Teste de Qualquer coisa Protocol) de saída, você pode encontrar isso ser útil: http://sourceforge.net/projects/smolder

Você tem visto ardem?

"Teste de fumo Agregador usado por desenvolvedores e testadores para upload (automático ou manual) e ver fumaça/testes de regressão usando o Teste de Qualquer Protocolo.Detalhes e as tendências são apresentadas em gráfico e notificações fornecido via e-mail ou Atom feeds".

Se eu o compreendo corretamente o que você está procurando TAP::Chicote

Se você estiver usando ExtUtils::MakeMaker ou Módulo::Construir, e , em seguida, você pode executar todos os testes automaticamente introduzindo o comando "fazer teste" ou "Build de teste", que irá executar qualquer *.t arquivos em seu projeto t/ subpasta.

Se você não estiver usando um desses, então você pode usar TAP::Chicote para automatizar a execução de vários scripts de teste.

Para realmente escrever os testes, usar Teste::Mais ou qualquer um dos módulos que outros têm sugerido aqui.

temos que executar todos os arquivos de teste manualmente para testar

Você certamente quer estar usando provar (é executado o teste) e/ou do Módulo::Build (cria o seu código e, em seguida, executa seus testes usando o mesmo equipamento de teste de código que provar usa internamente.)

Você disse:

"O que eu estou procurando é uma mais automatizados quadro que pode fazer teste incremental/criar cheques etc."

Ainda não inteiramente certo o que você está depois.Como outros já mencionados, você quer olhar para as coisas que são baseadas no Teste::Chicote/TOQUE rapidamente em.A grande maioria do Perl de testes da comunidade que usa o quadro - então, você vai ter muito mais apoio (e útil o código existente) usando isso.

Você pode falar um pouco mais sobre o que você quer dizer com "teste incremental/criar cheques"?

Eu estou supondo que você quer dividir os testes em grupos de forma que você só está executando determinados conjuntos de testes em certas circunstâncias?

Há um par de maneiras de fazer isso.O mais simples seria usar apenas o sistema de arquivos - dividir seu teste de diretórios então você tem coisas como:

core/
 database.t
 infrastructure.t
style/
  percritic.t
ui/
  something.t
  something-else.t

E assim por diante...em seguida, você pode usar a linha de comando "provar" ferramenta para executá-los todos, ou apenas alguns diretórios, etc.

provar que tem um monte de opções úteis que permitem que você escolha qual os testes são executados e em que ordem (e.g.coisas como mais recentemente falhou ordem).Isso - por si só - vai provavelmente você para o que você precisa.

(BTW, é importante para obter uma versão recente do Teste::Simples/provar/etc.a partir de CPAN.Versões recentes tem muito, muito mais funcionalidade).

Se você está de um OO mentalidade, ou ter experiência anterior do xUnit quadros, que você pode querer dar uma olhada no Teste: Classe, que é um Perl xUnit framework que construir em cima do TOQUE/Test::Arnês de camada.Eu acho que é muito melhor do que PerlUnit - mas eu gostaria de dizer que desde que eu escrevi :-)

Confira a deliciosa para mais algumas informações sobre o Teste: Classe http://delicious.com/tag/Test::Class

Se isso não é o que você está depois - você poderia ir um pouco mais de detalhes sobre a funcionalidade que você quer?

Felicidades,

Adrian

Pessoalmente, eu gosto de Teste::Mais, é basicamente Test::Mais com algumas adicionados recursos interessantes.

O conjunto de teste quadro de escolha é Teste::Chicote, que se encarrega de controlar a execução do teste, a coleta de resultados, etc.

Vários módulos existem determinados tipos de testes, o mais comum que pode ser encontrado em Teste::Simples e Teste::Mais (ambos estão incluídos no Teste Simples de distribuição).A totalidade do Teste de namespace no CPAN é dedicado a unidade especializada de testes de módulos, a maioria dos quais são projetados para ser executado sob Teste::Chicote.

Por convenção, os testes são armazenados em t/ diretório de um projeto, e cada arquivo de teste usa a extensão de ficheiro .t ;os testes são comumente executado por meio de

 prove t/*.t

Módulo distribuições incluem, normalmente, um destino com o nome 'teste' que executa o conjunto de teste antes da instalação.Por padrão, o CPAN processo de instalação requer que os testes de passar após a compilação antes de um módulo será instalado.

Gostaria de ir para Test::Mais, ou, em geral, qualquer coisa que saídas TOQUE

A partir de agora, utilizamos o Teste::Mais mas o problema atual é que temos de correr todos os arquivos de teste manualmente para testar.O que eu estou procurando é uma mais automatizados quadro que pode fazer teste incremental/criar controlos, etc.

Um wrapper em torno de Teste::Mais para o que seria o ideal, mas nada melhor e mais funcional seria bom também.

Eu estou passando por PerlUnit para ver se isso ajuda.

Você está ciente do 'provar' utility (a partir do App::Provar)?Você pode dizer a ele para executar todos os testes de forma recursiva em um dado diretório, com ou sem verbosidade, etc.

Para testes automatizados em perl dar uma olhada em Teste::Chicote, que contém o prove ferramenta.

O prove a ferramenta pode ser executada com o seguinte comando:

prove -r -Ilib t

Isto irá recursivly testar todos *.t arquivos na 't/ diretório, enquanto a adição de lib ao incluir o caminho.

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