# How can I run a line of rails code within the "test.rb" environment file?

**URL:** <https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672>\
**Category:** Rails\
**Created:** [November 6, 2008, 10:09am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672 "2008-11-06T10:09:31Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 10:09am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/1 "2008-11-06T10:09:31Z")

</div>

Hi,

How to I get a rails line of code that normally works within a rails  
mode, but but have it run within “test.rb” environment file. For  
example to get the following to run:

RecurringType.create(:name =\> “TYPE\_BASIC”)

PS. Or in general how to get a normal rails line of code to run in the  
“test.rb” file (i.e. only for when starting up in test mode). I get  
“ActiveRecord::ConnectionNotEstablished” when I include  
“RecurringType.create(:name =\> “TYPE\_BASIC”)”.

thanks

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 11:18am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/2 "2008-11-06T11:18:50Z")

</div>

On 6 Nov 2008, at 09:08, Greg H. wrote:

> “test.rb” file (i.e. only for when starting up in test mode). I get  
> “ActiveRecord::ConnectionNotEstablished” when I include  
> “RecurringType.create(:name =\> “TYPE\_BASIC”)”.

You need to make your code run after the framework has been fully  
initialized (which it isn’t when test.rb runs). Application  
initializers (files in config/initializers) run after this as do  
config.after\_initialize blocks.

Fred

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 11:28am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/3 "2008-11-06T11:28:47Z")

</div>

thanks Fred - I hadn’t come across these before…

So can I create a “test.rb” file in the “initializers” directory such  
that it would only run it for the “test” environment? Or if not what  
would you recommend re approach to ensure the code was only run when  
in a specific environment (e.g. ‘test’ in this case)?

Thanks

On Thu, Nov 6, 2008 at 8:17 PM, Frederick C.

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 11:46am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/4 "2008-11-06T11:46:23Z")

</div>

On 6 Nov 2008, at 10:27, Greg H. wrote:

> thanks Fred - I hadn’t come across these before…
> 
> So can I create a “test.rb” file in the “initializers” directory such  
> that it would only run it for the “test” environment? Or if not what  
> would you recommend re approach to ensure the code was only run when  
> in a specific environment (e.g. ‘test’ in this case)?

stuff in config/initializers is always run, but you can of course  
stick a if RAILS\_ENV == ‘foo’ in there. I tend to keep the stuff in  
their group by purpose.  
The config.after\_initialize thing wouldn’t require you to test what  
the environment is.  
Fred

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 11:52am UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/5 "2008-11-06T11:52:15Z")

</div>

Fred - re “The config.after\_initialize thing wouldn’t require you to  
test what the environment is” - what do you mean by this? where would  
the code go in this case such that there would be a way to have it  
only run for the ‘test’ environment?

On Thu, Nov 6, 2008 at 8:45 PM, Frederick C.

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [November 6, 2008, 12:05pm UTC](https://www.ruby-forum.com/t/how-can-i-run-a-line-of-rails-code-within-the-test-rb-environment-file/152672/6 "2008-11-06T12:05:10Z")

</div>

arr got it:

config.after\_initialize do

# xxx

end

On Thu, Nov 6, 2008 at 8:51 PM, Greg H.
