# Running unit tests in graphical mode

**URL:** <https://www.ruby-forum.com/t/running-unit-tests-in-graphical-mode/97035>\
**Category:** Ruby\
**Created:** [January 25, 2006, 6:17am UTC](https://www.ruby-forum.com/t/running-unit-tests-in-graphical-mode/97035 "2006-01-25T06:17:37Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Navya\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8baadc/32.png) [@Navya\_A](https://www.ruby-forum.com/u/Navya_A)\
**Post date:** [January 25, 2006, 6:17am UTC](https://www.ruby-forum.com/t/running-unit-tests-in-graphical-mode/97035/1 "2006-01-25T06:17:37Z")

</div>

Hi,

I have the following program written and when I run It comes up saying  
zero tests.  
what more should include in the code below for it to run in graphical  
mode.  
Please Help

require ‘test/unit/ui/tk/testrunner’  
class Roman  
MAX\_ROMAN = 4999

```
def initialize(value)
    if value <= 0 || value > MAX_ROMAN
        fail "Roman values must be > 0 and <= #{MAX_ROMAN}"
    end
    @value = value
end
FACTORS = [["m", 1000], ["cm", 900], ["d", 500], ["cd", 400],
                     ["c", 100], ["xc", 90], ["l", 50], ["xl", 40],
                     ["x", 10],["ix" ,9], ["v", 5], ["iv", 4],
                     ["i", 1]]

def to_s
    value = @value
    roman = "";
    for code, factor in FACTORS
        count, value = value.divmod(factor)
        roman << (code * count)
    end
    roman
end

```

end  
class TestRoman \< Test::Unit::UI::Tk::TestRunner  
def test\_simple  
assert\_equal(“i”, Roman.new(1).to\_s)  
assert\_equal(“ix”, Roman.new(9).to\_s)  
assert\_equal(“ii”, Roman.new(2).to\_s)  
assert\_equal(“iii”, Roman.new(3).to\_s)  
assert\_equal(“iv”, Roman.new(4).to\_s)  
end  
end

Thanks,  
Navya.

---

<div class="post-metadata">

**Author:** ![Navya\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8baadc/32.png) [@Navya\_A](https://www.ruby-forum.com/u/Navya_A)\
**Post date:** [January 25, 2006, 9:01am UTC](https://www.ruby-forum.com/t/running-unit-tests-in-graphical-mode/97035/2 "2006-01-25T09:01:56Z")

</div>

Hi Navya,

you have to change two lines in your code:

> require ‘test/unit/ui/tk/testrunner’

Change the preceding line to:

require ‘test/unit’

> class TestRoman \< Test::Unit::UI::Tk::TestRunner

Change that to:

class TestRoman \< Test::Unit::TestCase

A TestRunner is the thing that is running all your tests, which should  
be subclasses of Test::Unit::TestCase. To find out how to use another  
TestRunner, run your script with the option -h:

ruby \<yourscript.rb\> -h

Regards,  
Pit

---

<div class="post-metadata">

**Author:** ![Navya\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/8baadc/32.png) [@Navya\_A](https://www.ruby-forum.com/u/Navya_A)\
**Post date:** [January 26, 2006, 3:05pm UTC](https://www.ruby-forum.com/t/running-unit-tests-in-graphical-mode/97035/3 "2006-01-26T15:05:08Z")

</div>

From: Navya A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: running unit tests in graphical mode  
Date: Wed, 25 Jan 2006 14:15:01 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> require ‘test/unit/ui/tk/testrunner’

require ‘test/unit’

> class Roman

(snip)

> end  
> class TestRoman \< Test::Unit::UI::Tk::TestRunner

class TestRoman \< Test::Unit::TestCase

> ```
> def test_simple
> assert_equal("i", Roman.new(1).to_s)
> assert_equal("ix", Roman.new(9).to_s)
> assert_equal("ii", Roman.new(2).to_s)
> assert_equal("iii", Roman.new(3).to_s)
> assert_equal("iv", Roman.new(4).to_s)
> end
> 
> ```
> 
> end

When the filename is ‘test\_roman.rb’,  
please call “ruby test\_roman.rb --runner=tk”.
