If you'd like early eyes on the blog post, let us know. Happy to review!

One thing worth noting: we've tried to structure Beam so that the pain is
mostly limited to the core. Many modules have module-specific unit tests
that use DirectRunner directly. The module simply has a test dependency on
DirectRunner, and unit tests that expect the DirectRunner to be there "just
work". It's only the 2 modules the DirectRunner depends on directly
(sdk-core and runners-core) that have this pain.

Now for tests that should work on *any* runner, there is similar
customization -- @RunnableOnService (today, some better name tomorrow) and
runnable-on-service-tests, etc. etc.

Dan

On Thu, Dec 29, 2016 at 12:42 PM, Jesse Anderson <je...@smokinghand.com>
wrote:

> Thanks to everyone for their help. I'm writing a blog about the various
> Maven things you need to know with Beam.
>
> @Dan that command line worked. Thanks!
>
> On Thu, Dec 29, 2016 at 11:23 AM Stas Levin <stasle...@gmail.com> wrote:
>
> > I believe you raise a good point :)
> >
> > On Thu, Dec 29, 2016 at 9:00 PM Dan Halperin <dhalp...@google.com.invalid
> >
> > wrote:
> >
> > > I suspect -- but may be wrong -- that the command line Stas gives will
> > use
> > > the *installed* version of beam-sdks-java-core. If you are iterating
> on a
> > > @NeedsRunner test in the SDK core, you will either need to reinstall it
> > > over and over again, or use `-am` to force recompilation of the core.
> > >
> > > Here is a command that works for me. Please criticize :)
> > >
> > > mvn -Dtest=org.apache.beam.sdk.transforms.RegexTest
> -DfailIfNoTests=false
> > > -pl runners/direct-java -am integration-test
> > >
> > > Note that this is an `integration-test`, not a `test` because it tests
> > the
> > > integration of the SDK with the DirectRunner:
> > >
> > https://github.com/apache/beam/blob/master/runners/direct-
> java/pom.xml#L64
> > >
> > > Dan
> > >
> > > On Thu, Dec 29, 2016 at 10:53 AM, Stas Levin <stasle...@gmail.com>
> > wrote:
> > >
> > > > P.S
> > > > You can also do this from the main directory (without cd-ing into the
> > > > direct-runner):
> > > >
> > > > "mvn test -Dtest=RegexTest
> > > > -DdependenciesToScan=org.apache.beam:beam-sdks-java-core -pl
> > > > runners/direct-java"
> > > >
> > > > On Thu, Dec 29, 2016 at 8:50 PM Stas Levin <stasle...@gmail.com>
> > wrote:
> > > >
> > > > > Once you "cd" into "runners/direct-java" you can use:
> > > > >
> > > > > "mvn test -Dtest=RegexTest
> > > > > -DdependenciesToScan=org.apache.beam:beam-sdks-java-core"
> > > > >
> > > > > -Stas
> > > > >
> > > > > On Thu, Dec 29, 2016 at 8:27 PM Jesse Anderson <
> > je...@smokinghand.com>
> > > > > wrote:
> > > > >
> > > > > I tried that one already. It gives a no tests run error. If you
> > bypass
> > > > that
> > > > > error with -DfailIfNoTests=false, no tests get run at all.
> > > > >
> > > > > On Thu, Dec 29, 2016 at 10:20 AM Jean-Baptiste Onofré <
> > j...@nanthrax.net
> > > >
> > > > > wrote:
> > > > >
> > > > > > Hi Jesse
> > > > > >
> > > > > > Mvn test -Dtest=RegexTest
> > > > > >
> > > > > > Should work
> > > > > >
> > > > > > Don't forget the test goal. And no need to provide the fqcn.
> > > > > >
> > > > > > Regards
> > > > > > JB⁣​
> > > > > >
> > > > > > On Dec 29, 2016, 18:55, at 18:55, Jesse Anderson <
> > > > je...@smokinghand.com>
> > > > > > wrote:
> > > > > > >Does anyone know the Maven way to run a specific unit test with
> > > Beam?
> > > > > > >I've
> > > > > > >tried:
> > > > > > >mvn -Dtest=org.apache.beam.sdk.transforms.RegexTest
> > > > > > >-DfailIfNoTests=false
> > > > > > >-Dgroups="org.apache.beam.sdk.testing.NeedsRunner" -pl
> > > > > > >org.apache.beam:beam-sdks-java-core test
> > > > > > >
> > > > > > >The test still doesn't run. Does anyone know what I'm missing?
> > > > > > >
> > > > > > >Thanks,
> > > > > > >
> > > > > > >Jesse
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to