Quero poder executar os testes de um único arquivo de especificação - para o arquivo que estou editando, por exemplo. rake spec
executa todas as especificações. Meu projeto não é um projeto Rails, portanto rake spec:doc
não funciona.
Não sei se isso importa, mas aqui está minha estrutura de diretórios.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
A invocação bruta:
Agora descubra como incorporar isso ao seu editor.
fonte
Esta pergunta é antiga, mas aparece na parte superior do Google ao pesquisar como executar um único teste. Não sei se é uma adição recente, mas para executar um único teste de uma especificação, você pode fazer o seguinte:
where -line number- é um número de linha que contém parte do seu teste. Por exemplo, se você tivesse uma especificação como:
Digamos que ele esteja salvo em spec / models / foo_spec.rb. Então você executaria:
e apenas executaria essa especificação. De fato, esse número pode ser de 2 a 5.
Espero que isto ajude!
fonte
require
seus outros arquivos de especificação?rspec spec/models/foo_spec.rb:2:12:49
Você também pode usar o texto real do caso de teste * e * xample com
-e
!Então para:
você pode usar
não há necessidade de ancinho aqui.
fonte
da ajuda (spec -h):
Exemplo: spec spec / runner_spec.rb -l 162
fonte
:
conforme a documentação e uma resposta popular.Se você instalou o rspec como um plug-in e não como uma jóia, não terá o
spec
executável.De qualquer forma, tudo o que você precisa fazer é executar o arquivo usando ruby. O código rspec é inteligente o suficiente para executar os testes para você.
por exemplo:
fonte
http://github.com/grosser/single_test permite fazer coisas como ..
fonte
O Ruby 1.9.2 e o Rails 3 têm uma maneira fácil de executar um arquivo de especificação:
Explicação:
ruby
comando tende a ser mais rápido que orake
comando-I spec
significa "inclua o diretório 'spec' ao procurar arquivos"spec/models/user_spec.rb
é o arquivo que queremos executar.fonte
Para executar todos os seus arquivos rspec:
rspec
nota: você deve estar na raiz do seu projeto
Para executar um arquivo rspec:
rspec 'path_to/spec.rb'
nota: substitua 'path_to / spec.rb' pelo seu caminho. As aspas são opcionais.
Para executar um teste rspec de um arquivo:
rspec 'path_to/spec.rb:7'
Nota: 7 é o número da linha onde o teste começa.
fonte
Eu estava tendo problemas para que algum desses exemplos funcionasse, talvez porque o post seja antigo e os comandos tenham mudado?
Depois de bisbilhotar descobri que funciona:
rspec spec / models / user_spec.rb
Isso executará apenas o arquivo único e fornece saída útil no terminal.
fonte
specky.vim
fonte
Como alternativa, dê uma olhada no autoteste.
Executar o autoteste em uma janela de comando significa que o arquivo de especificação será executado sempre que você o salvar. Além disso, ele será executado sempre que o arquivo especificado for executado.
Por exemplo, se você tiver um arquivo de especificação de modelo chamado person_spec.rb e um arquivo de modelo especificado como person.rb, sempre que você salvar um desses arquivos do seu editor, o arquivo de especificação será executado.
fonte
Embora muitas ótimas respostas tenham sido escritas para essa pergunta, nenhuma delas usa a abordagem Rspec
tags
.Uso tags para executar uma ou mais especificações em arquivos diferentes - somente aqueles relacionados à minha tarefa de desenvolvimento atual.
Por exemplo, adiciono a tag "dev" com o valor "current":
então eu corro
Diferentes tags / valores podem ser definidos em especificações ou grupos individuais.
fonte
Digamos que você esteja executando o teste para criar tarefas. Você sempre pode executar esse código de especificação de todo específico usando o arquivo crete_spec.rb, conforme abaixo.
Se você deseja executar todas as especificações em um único curto.
Se você deseja executar todas as especificações em um controlador específico, use isso.
Espero que isso lhe dê mais compreensão!
fonte