From: tamouse mailing lists Date: 2013-05-08T11:04:35+09:00 Subject: Re: PROBLEMS CREATING AN SSH TUNNEL On Tue, May 7, 2013 at 12:28 PM, Clem Rock wrote: > Hello, > I'm writing a series of test that test credit cart transactions and > our card service relies on communicating to a sabrix server through an > ssh tunnel. > I've created something that works but I have to admit, it doesn't make > sense because I'm using a combination of a unix exec call and > Net::SSH::Gateway. > In order for the ssh tunnel work with the tests to to work they HAVE to > work in conjunction to each other. I'm ok with it but it seems like 1 > out of 10 times, the tests will fail because the ssh tunnel isn't open > for some reason. I've tried about every solution out there but can't > seem to get anything else to work. Here's the code: > > [code] > def setup > super > @controller = AccountController.new > @pid = fork{ exec("ssh -N -L 8888:10.0.1.68:8080 > test@test.test.com") } #this has to be open in a thread > @gateway = Net::SSH::Gateway.new('test.test.com', 'deploy') > #this has to be created as well > sleep(1) #sleep just a tad to let everything start up > end > > def test_update_credit_card_info > #test code here… > end > [/code] > > And in my teardown method, I'm killing the ssh tunnel like this: > > [code] > def teardown > system("kill -9 #{@pid}") #kill by pid > @gateway.shutdown! #kill the Net::SSH::Gateway instance > end > [/code] > > Any ideas? > > Thanks, > Eric > > -- > Posted via http://www.ruby-forum.com/. Just off the top of my head, instead of doing the setup and tear down, perhaps pass the test code into a method as a block that does that stuff, and mock the Net::SSH stuff?