vipin sahu
vipin sahu

Reputation: 5

FItNesse: Convert Fit fixture to Slim

Looking for a solution to convert Fit fixture for FitNesse test to Slim.

I got the Command-Line Fit fixture.

Since all my Fitnesse test system is running on Slim I need to have CommandLineFixture as Slim to execute bash script from my test.

Any other workaround for this should work for me.

I am trying to execute a script from FitNesse test and this script writes some text in file present in a server where my Fitnesse server is running.

But what I am observing with the provided fixture its opening file and not writing any text into it.

So just wanted to check do we have any constraint with Fitnesse to execute a script which writes into a file.

Also, I have given all rwx permission to the text file

Below is my modified script:

!define TEST_SYSTEM {slim} 
!path ../fixtures/*.jar  
|Import                                            |  
| nl.hsac.fitnesse.fixture.slim.ExecuteProgramTest | 
|script                                            | 
|set    |-c            |as argument|0              |  
|set    |ls -l /       |as argument|1              |  
|execute|/bin/bash                                 |  
|check  |exit code     |0                          |  
|show   |standard out                              |  
|check  |standard error|!--!                       |

Executing the above test fetched no response and gives the result as:

Test Pages: 0 right, 0 wrong, 1 ignored, 0 exceptions

Assertions: 0 right, 0 wrong, 0 ignored, 0 exceptions

(0.456 seconds)

Upvotes: 0

Views: 1063

Answers (1)

Fried Hoeben
Fried Hoeben

Reputation: 3272

I had a helper method to start a program in my my fixture library already, but I started work on fixture today. Would the execute program test fixture work for you?

Example usage:

We can run a program with some arguments, check its exit code and show its output.

|script |execute program test        |
|set    |-c            |as argument|0|
|set    |ls -l /       |as argument|1|
|execute|/bin/bash                   |
|check  |exit code     |0            |
|show   |standard out                |
|check  |standard error|!--!         |

The default timeout for program execution is one minute, but we can set a custom timeout. Furthermore we can control the directory it is invoked from, set all arguments using a list and get its output 'unformatted'.

|script               |execute program test           |
|check                |timeout           |60000       |
|set timeout of       |100               |milliseconds|
|set working directory|/                              |
|set                  |-c, ls -l         |as arguments|
|execute              |/bin/bash                      |
|check                |exit code         |0           |
|show                 |raw standard out               |
|check                |raw standard error|!--!        |

The timeout can also be set in seconds, and pass environment variables (and the process's output is escaped to ensure it is displayed properly).

|script        |execute program test           |
|set timeout of|1              |seconds        |
|set value     |Hi <there>     |for        |BLA|
|set           |-c             |as argument|0  |
|set           |!-echo ${BLA}-!|as argument|1  |
|execute       |/bin/bash                      |
|check         |exit code      |0              |
|check         |raw standard out               |!-Hi <there>
-!|
|check|standard out|{{{Hi <there>
}}}|

Upvotes: 0

Related Questions