From: Robert Klemme Date: 2007-11-03T02:30:18+09:00 Subject: Re: Who required that!? On 02.11.2007 15:21, transfire@gmail.com wrote: > > On Nov 2, 5:40 am, "Robert Klemme" wrote: >> 2007/11/2, Trans : >> >> >> >> >> >>> On Nov 1, 10:38 pm, "ara.t.howard" wrote: >>>> On Nov 1, 2007, at 6:18 PM, Trans wrote: >>>>> Is there any way to ask a file what other file require/load 'd it? I >>>>> imagine this has been asked before but I couldnt seem to find good >>>>> terms to search for it. >>>> cfp:~ > cat a.rb >>>> p Kernel.requiree('main') >>>> require 'b' >>>> p Kernel.requiree('main') >>>> BEGIN { >>>> module Kernel >>>> h = Hash.new >>>> define_method(:requiree) do |of| >>>> h[of] >>>> end >>>> r = method :require >>>> define_method(:require) do |*a| >>>> r.call *a >>>> h[a.first] = caller >>>> end >>>> end >>>> } >>> Doh! Of course! >>> Thanks Ara, that allowed me to figure it out. >>> Turns out using 'load' to load the test rather then passing it >>> straight to the ruby command, for some reason, gives test/unit the >>> idea that it should go out and hunt for every file it can find with a >>> test in it, including the copies in pkg/. That seems nuts me, but now >>> I recall having to specify some parameter to reign test/unit in before >>> --don't recall off hand what it was though. I'll have to track that >>> down. In any case >>> test_files.each do |file| >>> sh %{ruby -e #{file} >> #{output}} >>> end >>> works, and that's good enough. >> Just out of curiosity: why don't you use the test packages mechanisms >> to run multiple tests (TestSuite)? > > I need to keep them isolated to make sure they all work on their own. > How would you use the test/unit mechanisms to do that? I am not sure what you mean by "on their own". Do you expect side effects from test executions? From what I understand a TestCase should ideally be independent and probably also side effect free. Then you could easily lump them into a single TestSuite. The only issue I can think of off the top of my head would be class instance variables and required files which might yield different results - but then again, relying on a specific require order is probably not a good idea in its own. Kind regards robert