Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

preprocessing examples (and metadata) #969

Closed
rweng opened this Issue · 10 comments

6 participants

@rweng

Hi,

https://github.com/sauce-labs/sauce_ruby requires everything annotated with :js to be annotated with :sauce => true too if it should run on saucelabs. Now I wonder if I can preprocess examples and add the sauce: true if :js is set.

I had a similar issue that was regarding preprocessing (#948). It was labeled rspec-3, so maybe what I am looking for now is also rspec-3. Is there a planned timeline for this?

Thanks,
Robin

@JonRowe
Owner

Tagging mostly means we're just not going to look at it until RSpec 3, not that we've planned it, in any case your previous suggestion in #948 is already doable, which leads me to maybe think something along these lines is possible.

So could you try something for me? Does this pull in the sauce labs code for js tags? (Although I'd imagine it will only run the tests tagged with js)

config.filter_run_including js: -> value, metadata { metadata[:sauce] = metadata[:js] }
@cupakromer
Collaborator

This should be possible when your module is included:

module Super
  module Awesome
    def self.included(klass)
      klass.class_exec do
        metadata[:awesome] = :super
      end
    end
  end
end

RSpec.configure do |c|
  c.include Super::Awesome, js: true    # Adds awesome: :true
end

Or if you use ActiveSupport::Concern:

module Super
  module Awesome
    extend ActiveSupport::Concern

    included do
      metadata[:awesome] = :super
    end
  end
end
@JonRowe
Owner

You can try @cupakromer's suggestion, but I'm not convinced that will trigger the code inclusion you want here, incidentally you could also ask sauce labs to allow you to customise which tag is required :p

(Also please don't use ActiveSupport::Concern for things like this.)

@cupakromer
Collaborator

:stuck_out_tongue_closed_eyes: :see_no_evil: I only added the AS::Concern as an example of how it could be added in to an already larger module using it, wasn't advocating it's use for this sole purpose.

@JonRowe
Owner

We get enough bug reports that are due to Rails as is without adding AS::Concern into the mix.

@mikegee

@rweng Do you have any results to report back from trying the suggestions?

@rweng

@mikegee nope, we paused the saucelabs integration brauch and shifted focus. It's still on the roadmap though.

@xaviershay
Collaborator

Is this still an issue with RSpec 3?

@myronmarston
Owner

Is this still an issue with RSpec 3?

We haven't done anything to address this yet.

@rweng -- do you have an example of what kind of preprocessing API you would like?

@rweng

I am not really into the matter anymore. What I think would be nice is being able to access the tests directly, reading their metadata, title, group etc and enabling/disabling them based that.

@myronmarston myronmarston referenced this issue from a commit
@myronmarston myronmarston Add `config.define_derived_metadata`.
Fixes #969 and supercedes #1089.
ebf9c80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.