flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "josh gruenberg (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-1827) Move test classes in test folders and fix scope of test dependencies
Date Fri, 13 May 2016 21:30:12 GMT

    [ https://issues.apache.org/jira/browse/FLINK-1827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15283180#comment-15283180

josh gruenberg commented on FLINK-1827:

Hi all,

This change just tripped up my team: we have some tests that depend on flink-test-utils, and
we're working with 1.1-SNAPSHOT to try out the SessionWindows feature. Our build suddenly
stopped working last week when this change was deployed, until rmetzger helped us get unstuck
(thanks! :) by adding the "test-jar" type to the pom dependency.

I'll offer that I think this may not ultimately be a great technique for achieving your goal
of streamlining your dev-builds. Here's why:

- specifying "<type>test-jar</type>" is error-prone boilerplate for all consumers
of this dependency; forgetting to include this unusual requirement leads to confusing error-messages
- problems arise with transitive dependencies when depending on test-jars: the transitive
dependencies do not get propagated to the consuming projects, requiring all consumers to add
direct references to all dependencies themselves. This problem can snowball later if more
dependencies are added to the test-jar. (See https://issues.apache.org/jira/browse/MNG-1378)

I don't think it's correct to assume that all "test-related" code should always be in src/test:
the purpose of this particular artifact is just to provide test-utilities; that is its only
reason for existing, and so that code should be its src/main. If there were tests FOR the
test-utils, then _those_ would appropriately reside in src/test (and would thus correctly
be omitted from the assembly of the released jar).

There's more on this here: https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html

If your intent is to omit this artifact from a streamlined build, then this might be better
approached via alternative maven configurations. There are probably many ways to achieve this;
one possibility is via a profile in the flink-test-utils pom that disables its build (eg,
by disabling the compiler plugin, as described in the second answer here: http://stackoverflow.com/questions/14614446/how-do-i-disable-the-maven-compiler-plugin).

> Move test classes in test folders and fix scope of test dependencies
> --------------------------------------------------------------------
>                 Key: FLINK-1827
>                 URL: https://issues.apache.org/jira/browse/FLINK-1827
>             Project: Flink
>          Issue Type: Improvement
>          Components: Build System
>    Affects Versions: 0.9
>            Reporter: Flavio Pompermaier
>            Priority: Minor
>              Labels: test-compile
>             Fix For: 1.1.0
>   Original Estimate: 4h
>  Remaining Estimate: 4h
> Right now it is not possible to avoid compilation of test classes (-Dmaven.test.skip=true)
because some project (e.g. flink-test-utils) requires test classes in non-test sources (e.g.
> Test classes should be moved to src/main/test (if Java) and src/test/scala (if scala)
and use scope=test for test dependencies

This message was sent by Atlassian JIRA

View raw message