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.

Reply via email to