Features and conditions for those to be executed

Hello G.s,

May this question be silly, so I’m exposing myself as a complete dumb
:wink:

I’ve been working on a project called rake-compiler, which enable the
building of extension with C compilers in a standarized way.

The thing is been driven by features and with some specs to guide me
in the task associations of rake, but not much after.

Now I have a problem: I want to introduce cross compilation which can
only be executed in certain environments, not all.

I have specs that tell me what will happen (what things will get
defined as rake tasks) and the chain, but I cannot execute it under
Windows.

Only under OSX or Linux can be executed (which I’m using right now to
drive it).

There is a way that I can exclude this feature from being executed in
this case? I will prefer to avoid having a feature list to maintain,
but if is the only choice, no problem.

Thanks in advance for the suggestions.

Luis L.
AREA 17

Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams

Assuming you’re writing a feature for a black box that works under
linux, osx but not under windows. Can you not write a features like

Given I’m on windows
When I run black box
I should get an error …

Given I’m on OSX
When I run black box
I should not get an error …

Just an idea, HTH

Andrew

2008/11/22 Luis L. [email protected]:

On Mon, Nov 24, 2008 at 1:47 PM, Andrew P. [email protected]
wrote:

Just an idea, HTH

Yeah, your idea looks good.

Wonder if this should be defined as a pending step or it should
generate an skipped one?

Luis L.
AREA 17

Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams

On Mon, Nov 24, 2008 at 2:02 PM, Joseph W. [email protected]
wrote:

When I run black box

Hello G.s,

There is a way that I can exclude this feature from being executed in
@@@
windows: --format progress features --exclude pesky_windows_feature
mac: --format progress features
@@@

Then run them with:
cucumber --profile windows
cucumber --profile mac

HTH,

Thanks Joseph,

I will love to drive the “show” only using “rake features” or by
calling cucumber features directly, thus avoiding to remember that
exclusion list.

BTW: the pesky feature will be OSX and Linux, not Windows, so the
pesky ones are posix, not Windows :wink:


Luis L.
AREA 17

Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams

Andrew P. wrote:

I have specs that tell me what will happen (what things will get
defined as rake tasks) and the chain, but I cannot execute it under
Windows.

Only under OSX or Linux can be executed (which I’m using right now to drive it).

There is a way that I can exclude this feature from being executed in
this case? I will prefer to avoid having a feature list to maintain,
but if is the only choice, no problem.

You could use profiles in the cucumber.yml file. Rather than creating a
long feature list you can exclude a feature from one profile.

Cucumber accepts:
-e, --exclude PATTERN Don’t run features matching a pattern

@@@
windows: --format progress features --exclude pesky_windows_feature
mac: --format progress features
@@@

Then run them with:
cucumber --profile windows
cucumber --profile mac

HTH,

Joseph W.