Yes, that works mostly like expected:
4704 examples, 21 failures, 154 pending and ... [18:39:20]: ▸ Pending: (Failures listed here are expected and do not affect your suite's status) [18:39:20]: ▸ 1) Fastlane Fastlane::EnvironmentPrinter contains main information about the stack [18:39:20]: ▸ # Requires Xcode to be installed which is not possible on this platform [18:39:20]: ▸ # ./fastlane/spec/env_spec.rb:28 [18:39:20]: ▸ 2) Fastlane Fastlane::EnvironmentPrinter FastlaneCore::Helper.xcode_version cannot be obtained contains stack information other than Xcode Version [18:39:20]: ▸ # Requires Xcode to be installed which is not possible on this platform [18:39:20]: ▸ # ./fastlane/spec/env_spec.rb:47 ... Awesome! The 21 failures are new though. I have a _spec.rb file with 21 examples that has a *before(:all)* that seems to have been filtered with my old solution, but with *skip *is now executed and fails: describe Scan do describe Scan::XCPrettyReporterOptionsGenerator do before(:all) do .. code that fails when executed on non-macOS ... end describe "xcpretty reporter options generation" do it "generates options for the junit tempfile report required by scan", requires_xcodebuild: true do ... Any idea what I can do about this? -J Am Dienstag, 19. Dezember 2017 19:26:17 UTC+1 schrieb Jan P.: > > Thanks for the quick answer. > > I missed "skipping examples" because I was so happy to have found > exclusion filters. Sounds like pretty much what I am looking for - even > better with the explicit reason I can set for skipping. Will try and report > back. > > Best, > Jan > > > > Am Dienstag, 19. Dezember 2017 17:37:56 UTC+1 schrieb Myron Marston: >> >> RSpec does not provide a way to get the number of examples that were >> excluded by its inclusion or exclusion filters, but there’s a different >> mechanism that will do what you want. Instead of filtering the examples >> (which excludes them from consideration entirely), you can skip them, which >> prevents the body of the example from running, sets the example’s status to >> :pending, will print the example in yellow in the formatter output, and >> will count the example in the summary total printed at the end (e.g. “500 >> examples, 0 failures, 20 pending”). Normally, :skip metadata will cause >> an example to be skipped >> <https://www.google.com/url?q=https%3A%2F%2Frelishapp.com%2Frspec%2Frspec-core%2Fv%2F3-7%2Fdocs%2Fpending-and-skipped-examples%2Fskip-examples%23skipping-using-metadata&sa=D&sntz=1&usg=AFQjCNH2bA7au32CPocvg1H0M1Vzmcf5IQ>, >> >> but you’ve overwritten it to cause :skip to cause examples to be >> filtered out. >> >> Here’s my suggestion for how to wire this up. >> >> First, tag any examples that depend upon xcode with :uses_xcode (rather >> than :skip), e.g.: >> >> it "uses a feature of xcode", :xcode do >> # ...end >> >> it "does not use xcode at all" do >> # ...end >> >> Then use define_derived_metadata to automatically tag these examples >> with :skip if you are not running on OS X: >> >> # spec_helper.rbrequire 'rbconfig' >> RSpec.configure do |config| >> unless RbConfig::CONFIG['host_os'] =~ /darwin/ >> config.define_derived_metadata(:xcode) do |meta| >> meta[:skip] = "Can only be run on OS X" >> end >> endend >> >> The “Can only be run on OS X” bit will be printed in the output as the >> reason the examples are pending. >> >> HTH, >> Myron >> >> >> >> On Tue, Dec 19, 2017 at 3:06 AM, Jan P. <[email protected]> wrote: >> >>> RSpec has this nice method to exclude individual tests/examples or whole >>> groups by using filter_run_excluding in the config, then tagging the >>> examples: >>> >>> >>> https://relishapp.com/rspec/rspec-core/v/3-7/docs/filtering/exclusion-filters >>> >>> RSpec.configure do |c| >>> c.filter_run_excluding :skip => trueend >>> RSpec.describe "something" do >>> it "does one thing" do >>> end >>> >>> it "does another thing", :skip => true do >>> endend >>> >>> "does one thing" will be checked, >>> "does another thing" will not. >>> >>> >>> We are using this, for example, to skip some tests depending on the >>> platform the test is run on by wrapping the c.filter_run_excluding >>> :skip => true in an if block: >>> >>> If Mac, >>> no exclusions, if Ubuntu, >>> exclude tests that do something with Xcode. >>> >>> >>> Right now the numbers of passing examples/test is just lower if the >>> exclusion filter is used, but it would be nice to see the actual number of >>> tests that are skipped. >>> >>> Is there a way to get the number of tests skipped by this method during >>> a test run? >>> >>> Thanks, >>> >>> Jan >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "rspec" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rspec/3108ef8e-303d-425b-9b00-ab83dfec7633%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/rspec/3108ef8e-303d-425b-9b00-ab83dfec7633%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/70f9056f-f217-40e7-bf9e-76d389de2fd7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
