Hallo,
Ich habe ein paar Rubygems für GNU Guix gepackt, und gelegentlich möchte ich bestimmte Beispiele deaktivieren. Ich vermute das Gegenteil des rspec --example
Flags. Dies ist nützlich, wenn zB bestimmte Tests bekannte Fehler sein könnten, da das automatisierte Build-System beim Ausführen der 'Check'-Phase einen Exit-Status von Null erfordert (um anzuzeigen, dass alle Tests erfolgreich waren).
Es gibt Workarounds, zB das Patchen der Testdateien, aber es würde das Leben einfacher machen, wenn wir rspec bitten könnten, dies für uns zu tun. Gibt es eine Möglichkeit, dies bereits zu tun, oder ist dieses Problem eine Funktionsanfrage?
Danke,
ben
Sie können Beispiele auf viele Arten filtern, über Metadaten und --tag
zB https://relishapp.com/rspec/rspec-core/v/3-4/docs/command-line/tag-option , programmatisch über Metadaten zB https://relishapp.com/rspec/rspec-core/v/3-4/docs/filtering/inclusion-filters und bedingt programmatisch über https://relishapp.com/rspec/rspec-core/v/3 -4/docs/filtering/conditional-filters
Vielleicht bin ich langsam, aber ich kann nicht sehen, wie einer dieser Links hilft. Vielleicht hilft ein Beispiel zur Klärung der Dinge. Wenn ich zum Beispiel diese Spezifikation habe:
$ cat ~/t/a.spec
require 'rspec'
class My
def self.answer
4
end
end
RSpec.describe My, "#answer" do
context 'good and bad' do
it 'gives the right answer' do
expect(My.answer).to eq 4
end
it 'gives the wrong answer' do
expect(My.answer).to eq -1
end
end
end
Wie kann ich dann etwas ausführen, das Folgendes erreicht?
$ rspec ~/t/a.spec --exclude-example wrong
Ich suche nach einer Möglichkeit, die Spezifikationsdatei selbst nicht zu ändern.
Danke.
RSpec.describe "My#answer" do
context 'good and bad' do
it 'gives the right answer', type: :right do
expect(My.answer).to eq 4
end
it 'gives the wrong answer', type: :wrong do
expect(My.answer).to eq -1
end
end
end
$ rspec ~/t/a.spec --tag @right
oder $ rspec ~/t/a.spec --tag ~@wrong
Sie haben type: wrong
hinzugefügt. Entnehme ich Ihrer Antwort, dass es nicht möglich ist, etwas Ähnliches zu erreichen, ohne die Spezifikation zu ändern, wodurch dieses Problem zu einer Funktionsanforderung wird?
Ich denke, es wäre vernünftig, --exclude-example
hinzuzufügen.
Hilfreichster Kommentar
Ich denke, es wäre vernünftig,
--exclude-example
hinzuzufügen.