Jon, I tried describe "xcpretty reporter options generation", requires_xcodebuild: true do
and before(:all), requires_xcodebuild: true do and describe Scan::XCPrettyReporterOptionsGenerator, requires_xcodebuild: true do but all didn't work and the tests were logged as failure because of the `before` being executed. Am I doing this wrong somehow? Code (last iteration) is here: https://github.com/fastlane/fastlane/blob/janpio-mark_skipped_tests_as_pending_with_reason/scan/spec/xcpretty_reporter_options_generator_spec.rb https://github.com/fastlane/fastlane/blob/janpio-mark_skipped_tests_as_pending_with_reason/spec_helper.rb#L68-L83 Matching Circle CI run: https://circleci.com/gh/fastlane/fastlane/12586 -Jan Am Dienstag, 19. Dezember 2017 23:05:53 UTC+1 schrieb Jon Rowe: > > 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] <javascript:> > 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.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] <javascript:>. > To post to this group, send email to [email protected] <javascript:>. > 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/715c3e8b-c8e0-4c98-a0ee-9ebf1d9c4ae4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
