I haven't ever tried to de-couple from Maven. The 'lowest' I ever got was something like the following:

1. mvn clean install -DskipTests
2. cd hbase-shell
2. mvn package -Dtest=TestShell -Dshell.test.include=my_test_class.rb -o

Hope this helps, Jack. I know it's not ideal -- if you do come up with something that works at a lower level, I think we'd be very supportive to get it doc'ed and keep it working :)

On 7/30/18 11:16 PM, Jack Bearden wrote:
Hey all! I was hacking hbase-shell and JRuby over the weekend and wanted to
get some feedback on workflow. My objective was to execute a single Ruby
unit test in isolation from the TestShell.java class via the jruby binary.
I was able to accomplish this by doing the following steps:

1.  Pulled down branch-2
2.  Installed and cleaned via maven at the base directory (mvn
-Dmaven.javadoc.skip -DskipTests install)
3.  Changed to the hbase-shell directory and exported the classpath (mvn
dependency:build-classpath -Dmdep.outputFile=/path/to/cpath.txt)
4.  Exported the path to that file to shell env (export
TEST_PATH="/path/to/cpath.txt")
5.  Hacked tests_runner.rb to just load("path/to/test") for the test I
wanted to run
6.  From the hbase-shell project directory ran the following:

jruby \
-J-cp `cat $TEST_PATH` \
-d -w \
-I src/test/ruby \
-I src/main/ruby \
src/test/ruby/tests_runner.rb

The problem is, is this only worked on *most* of the hbase-shell Ruby
tests. The only way to get, for example, list_procedures_test.rb to work
completely, was to run it from the TestShell.java file. When ran from the
jruby binary, I get a "class not found" when
org.apache.hadoop.hbase.client.procedure.ShellTestProcedure.new was being
referenced. I can't figure out how to load this class adhoc and not through
what appears to be Maven magic.

Any suggestions or better ideas on how to do this?

Reply via email to