[rspec-users] autotest failing on startup
David Chelimsky
dchelimsky at gmail.com
Thu Jul 3 09:27:58 EDT 2008
On Jul 3, 2008, at 3:08 AM, Don French wrote:
> I have been using autotest/zentest 3.5.0 with my rails 2.0.2 and
> rspec. I
> upgraded my gems and got 3.9.3 and had a problem. I went back to
> 3.5.0 and
> it worked. I stayed there until moving to rails 2.1. I again updated
> my gems
> and got 3.10. This one had the same problem. This time I need to
> figure out
> what is wrong. Here is what I get:
>
> /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:394:in
> `find_files_to_test': undefined method `values' for #<Array:0x18b2530>
> (NoMethodError)
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 239:in
> `run_tests'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 228:in
> `get_to_green'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 208:in
> `run'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 206:in
> `loop'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 206:in
> `run'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/lib/autotest.rb:
> 136:in
> `run'
> from /Library/Ruby/Gems/1.8/gems/ZenTest-3.10.0/bin/autotest:55
> from /usr/bin/autotest:19:in `load'
> from /usr/bin/autotest:19
This is all autotest so I don't think it's related to rspec. That
said, what version of rspec are you using?
> Here is the failing code:
>
> def find_files
> result = {}
> targets = self.find_directories + self.extra_files
> self.find_order.clear
>
> targets.each do |target|
> order = []
> Find.find(target) do |f|
> Find.prune if f =~ self.exceptions
>
> next if test ?d, f
> next if f =~ /(swp|~|rej|orig)$/ # temporary/patch files
> next if f =~ /\/\.?#/ # Emacs autosave/cvs merge
> files
>
> filename = f.sub(/^\.\//, '')
>
> result[filename] = File.stat(filename).mtime rescue next
> order << filename
> end
> self.find_order.push(*order.sort)
> end
> return result # this should return as a hash but is received as an
> array
> end
>
> ##
> # Find the files which have been modified, update the recorded
> # timestamps, and use this to update the files to test. Returns true
> # if any file is newer than the previously recorded most recent
> # file.
>
> def find_files_to_test(files=find_files)
> # for some reason files comes in as a array needs to be hash
> #myfiles = {}
> #files.each do |key, value|
> #myfiles[key] = value
> #end
> #files = myfiles
> updated = files.select { |filename, mtime| self.last_mtime <
> mtime }
>
> p updated if $v unless updated.empty? or self.last_mtime.to_i == 0
>
> updated.map { |f,m| test_files_for(f) }.flatten.uniq.each do |
> filename|
> self.files_to_test[filename] # creates key with default value
> end
>
> if updated.empty? then
> nil
> else
> files.values.max <= line 394
> end
> end
>
> For some reason the files is an array instead of a hash. I added
> the little
> change that is commented out and it works. But that should not have
> to be
> done.
>
> Any ideas?
>
>
> --
> View this message in context: http://www.nabble.com/autotest-failing-on-startup-tp18246365p18246365.html
> Sent from the rspec-users mailing list archive at Nabble.com.
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
More information about the rspec-users
mailing list