------art_31760_26296488.1168626713655
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Thanks, this worked great.

I added an @data_dir variable in all of my test setup methods and always
reference File.join(@data_dir, "[whatever_data_file].txt") for the data file
and all of my problems are solved!


On 1/12/07, Jeremy Hinegardner <jeremy / hinegardner.org> wrote:
>
>
> On Sat, Jan 13, 2007 at 01:04:29AM +0900, Jeff Grice wrote:
> > I am having difficulty using rake to run tests on a gem I have created.
> > I am able to run the tests I have created from the command line
> > individually without problem, but when I try to run through rake it
> > cannot locate the *.txt files that I use in the tests.
> >
> > My folder structure has the tests in a folder under the rake file in
> > 'tests' and the data files the tests are referencing are in
> > 'tests/testdata'
>
> So you have:
>     project_dir/
>         Rakefile
>         tests/
>         tests/(lots of tests.rb)
>         tests/testdata/
>
> And your current directory when you are running 'rake test' is
> project_dir.
>
> > The rakefile is set up as
> >
> > Rake::TestTask.new do |t|
> >        t.libs << "tests"
> >        t.test_files  ileList['tests/test*.rb']
> >        t.verbose  rue
> > end
> >
> > My test files are referencing *.txt files as follows:
> >        def test_initialize
> >                o  AHelper::FilePeeker.new('testdata/peeker.txt', 1)
>
> The bug is here, the current directory when the test is executed is
> 'project_dir' but the test assumes it is 'project_dir/tests'
>
>
> >                puts o.output_data
> >                assert_equal(1, o.output_data.size)
> >        end
> >
> > when I run 'rake test' I get the following error:
> >
> >  1) Error:
> > test_initialize(TestFilePeeker):
> > Errno::ENOENT: No such file or directory - testdata/peeker.txt
> >    ./tests/../lib/file_peeker.rb:8:in `initialize'
> >    ./tests/../lib/file_peeker.rb:8:in `initialize'
> >    tests/test_file_peeker.rb:7:in `test_initialize'
> >
> > How do I set up my rakefile so that it can find the *.txt files in the
> > testdata folder?
>
> If all of your tests are all in test/ directory the easy way would be to
> change your FilePeeker line above to do something like:
>
>     # make sure we have the directory of the data data files, in this
>     # case it is relative to the test's directory by being up one and
>     # then down the 'testdata' directory
>     def setup
>         @data_dir  ile.join(File.dirname(__FILE__),"..","testdata"))
>         ....
>     end
>
>     def test_initialize
>         o  AHelper::FilePeeker.new(File.join(@data_dir,'peeker.txt'))
>         puts o.output_data
>         assert_equal(1, o.output_data.size)
>     end
>
> Munge as necessary for deep testing directories, etc.
>
> enjoy,
>
> -jeremy
>
>
> --
> 
> Jeremy Hinegardner                              jeremy / hinegardner.org
>
>
>

------art_31760_26296488.1168626713655--