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.

Reply via email to