Such Unit Test framework already exists as an addon: general/unittest http://www.jsoftware.com/jwiki/Addons/general/unittest
The mentioned issues were addressed. In fact J has very rich introspection facilities, exception handling, and being interpretive help a lot. You might want to consider extending the framework with a GUI similar to JUnit/NUnit. The hierarchies of tests are in scirpts and further in folder structures, which can be discovered by traversing folder structure and naming conventions. ----- Original Message ---- > From: June Kim <[email protected]> > > I am trying to make a unit-testing framework for J, in the lines of > the other standard star-unit frameworks, for example, like JUnit > http://en.wikipedia.org/wiki/JUnit > > However, I found the facilities for reflection and exception handling > in J is wanting compared to other languages like Java. > > --------- > sum=: + > mul=: * > > should_eq=: dyad :0 > : > text=. '' > if. -.x-:y do. > text=. x ([,' -...@-: ',])&": y > end. > > text assert x-:y > ) > > test_sum=: monad : 0 > 10 should_eq sum/ 1 2 3 4 > 10 should_eq sum/ 1 2 3 > ) > test_mul=: monad : 0 > 24 should_eq mul/ 1 2 3 4 > 6 should_eq mul/ 1 2 3 4 > ) > > all_test=: monad : 0 > test_sum'' > test_mul'' > ) > > all_test'' > > --------- > > First limitation: I want to get the line number(in the script file > along with the file name) when there is a failure. How do I get this? > (13!:13 was a possible path but the line number there isn't the LN > from the top of the file) > > Second limitation: each test case should run independently from each > other. That means the failure in test_sum shouldn't stop running > test_mul. What is an easy and flexible way? (maybe making a gerund > array of test_sum and test_mul, and running through the gerund array > to execute each verb inside try, catch statement -- handling the > failure appropriately afterwards) > > Gathering all the verbs that start with "test_" wouldn't be that hard. > (reflection) > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
