Everyone likes it, no one has time to work on it. You guys can feel free to jump in and make it a real thing :) There's definitely still time for this to make it into Pig 0.8.
-D On Wed, Jul 21, 2010 at 9:22 AM, Dave Viner <davevi...@pobox.com> wrote: > PigUnit looks awesome. Can this make it into either the latest piggybank > release or the next core release? > > > > On Wed, Jul 21, 2010 at 6:06 AM, Corbin Hoenes <cor...@tynt.com> wrote: > > > Dimitry, > > > > Nope that is new for me thanks for pointing it out, been using this home > > grown class since pig 0.5--really like the idea of unit testing moving > into > > pig as a first class citizen. > > > > > > On Jul 21, 2010, at 2:11 AM, Dmitriy Ryaboy wrote: > > > > > Corbin, > > > Have you looked at PigUnit? > > https://issues.apache.org/jira/browse/PIG-1404 > > > > > > > > > On Tue, Jul 20, 2010 at 11:07 PM, Corbin Hoenes <cor...@tynt.com> > wrote: > > > > > >> okay no attachments...try this gist: > > >> > > >> http://gist.github.com/484135 > > >> > > >> On Jul 21, 2010, at 12:02 AM, Corbin Hoenes wrote: > > >> > > >>> Trying to attach the PigRunner class in case that helps give you a > > start > > >> using register script. > > >>> > > >>> > > >>> > > >>> On Jul 20, 2010, at 11:56 PM, Corbin Hoenes wrote: > > >>> > > >>>> Hey Todd we run against entire pig scripts with some helper classes > we > > >> built basically they preprocess the variables then call register > script > > but > > >> the test looks like this: > > >>>> > > >>>> @Before > > >>>> public void setUp() throws Exception { > > >>>> Helper.delete(OUT_FILE); > > >>>> runner = new PigRunner(); > > >>>> } > > >>>> > > >>>> > > >>>> @Test > > >>>> public void testRecordCount() throws Exception { > > >>>> runner.execute("myscript.pig", "param1=foo","param2=bar"); > > >>>> > > >>>> Iterator<Tuple> tuples = > > runner.getPigServer().openIterator("foo"); > > >>>> assertEquals(41L, Helper.countTuples(tuples)); > > >>>> } > > >>>> > > >>>> It's been very useful for us to test this way. Would love to see > more > > >> chatter about other techniques. > > >>>> > > >>>> On Jul 20, 2010, at 3:26 PM, ToddG wrote: > > >>>> > > >>>> > > >>>>> I'd like to include running various PIG scripts in my continuous > > build > > >> system. Of course, I'll only use small datasets for this, and in the > > >> beginning, I'll only target a local machine instance. However, this > > brings > > >> up several questions: > > >>>>> > > >>>>> > > >>>>> Q: Whats the best way to run PIG from java? Here's what I'm doing, > > >> following a pattern I found in some of the pig tests: > > >>>>> > > >>>>> 1. Create Pig resources in a base class (shamelessly copied from > > >> PigExecTestCase): > > >>>>> > > >>>>> protected MiniCluster cluster; > > >>>>> protected PigServer pigServer; > > >>>>> > > >>>>> @Before > > >>>>> public void setUp() throws Exception { > > >>>>> > > >>>>> String execTypeString = System.getProperty("test.exectype"); > > >>>>> if(execTypeString!=null && execTypeString.length()>0){ > > >>>>> execType = PigServer.parseExecType(execTypeString); > > >>>>> } > > >>>>> if(execType == MAPREDUCE) { > > >>>>> cluster = MiniCluster.buildCluster(); > > >>>>> pigServer = new PigServer(MAPREDUCE, > > cluster.getProperties()); > > >>>>> } else { > > >>>>> pigServer = new PigServer(LOCAL); > > >>>>> } > > >>>>> } > > >>>>> > > >>>>> 2. Test classes sub class this to get access to the MiniCluster and > > >> PigServer (copied from TestPigSplit): > > >>>>> > > >>>>> @Test > > >>>>> public void notestLongEvalSpec() throws Exception{ > > >>>>> inputFileName = "notestLongEvalSpec-input.txt"; > > >>>>> createInput(new String[] {"0\ta"}); > > >>>>> > > >>>>> pigServer.registerQuery("a = load '" + inputFileName + "';"); > > >>>>> for (int i=0; i< 500; i++){ > > >>>>> pigServer.registerQuery("a = filter a by $0 == '1';"); > > >>>>> } > > >>>>> Iterator<Tuple> iter = pigServer.openIterator("a"); > > >>>>> while (iter.hasNext()){ > > >>>>> throw new Exception(); > > >>>>> } > > >>>>> } > > >>>>> > > >>>>> 3. ERROR > > >>>>> > > >>>>> This pattern works for simple PIG directives, but I want to load up > > >> entire pig scripts, which have REGISTER and DEFINE directives, then > the > > >> pigServer.registerQuery() fails with: > > >>>>> > > >>>>> org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: > Error > > >> during parsing. Unrecognized alias REGISTER > > >>>>> at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1170) > > >>>>> at > org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1114) > > >>>>> at org.apache.pig.PigServer.registerQuery(PigServer.java:425) > > >>>>> at org.apache.pig.PigServer.registerQuery(PigServer.java:441) > > >>>>> at > > >> > > > com.audiencescience.apollo.reporting.NetworkRevenueReportTest.shouldParseNetworkRevenueReportScript(NetworkRevenueReportTest.java:74) > > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > >>>>> at > > >> > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > >>>>> at > > >> > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > >>>>> > > >>>>> Any suggestions? > > >>>>> > > >>>>> -Todd > > >>>> > > >>> > > >> > > >> > > > > >