You should be able to specify `requires_xcodebuild: true` on the describe as we’ll to prevent the before all being triggered
Jon Rowe --------------------------- [email protected] jonrowe.co.uk On Wednesday, 20 December 2017 at 05:56, Jan P. wrote: > Excuse the terrible code formatting, seems Google Groups wanted to be helpful. > > Another try: > 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 ... > > -J > > > > > Am Dienstag, 19. Dezember 2017 19:55:45 UTC+1 schrieb Jan P.: > > 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.rb require '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 end end > > > > > > > > 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 => true end > > > > > RSpec.describe "something" do it "does one thing" do end it "does > > > > > another thing", :skip => true do end end > > > > > > > > > > "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] > (mailto:[email protected]). > To post to this group, send email to [email protected] > (mailto:[email protected]). > To view this discussion on the web visit > https://groups.google.com/d/msgid/rspec/bcfd5676-92bd-4051-a3dd-5cb942784698%40googlegroups.com > > (https://groups.google.com/d/msgid/rspec/bcfd5676-92bd-4051-a3dd-5cb942784698%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/1B60D6413B79493CA00874AF57C95849%40jonrowe.co.uk. For more options, visit https://groups.google.com/d/optout.
