faresd / appengine-maven-plugin

Automatically exported from code.google.com/p/appengine-maven-plugin
Apache License 2.0
0 stars 0 forks source link

Support for Integration Test such as Selenium #5

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
With the unofficial kindleit maven plugin we run Integration test with selenium 
using the  gae:start command that starts an instance of the local server in the 
pre-integration-test phase and then continues to the integration phase where we 
run selenium test. 

The Official Maven Plugin supports starting a local instance but has no goal 
that hands off to the integration phase. I will try to create a workaround in 
our pom for this but it would be great to have this added to the official maven 
plugin.

Original issue reported on code.google.com by i...@electionear.com on 10 Jan 2013 at 5:46

GoogleCodeExporter commented 8 years ago
Have you found any work around? Because the only reliable way to do this is to 
actually modify plugin to remove that .waitFor() :/

Original comment by tadas.subonis@gmail.com on 1 Feb 2013 at 2:27

GoogleCodeExporter commented 8 years ago
How do you clean up the java process that is running after you're done with the 
integration tests?  I was planning to do this, but only after I had that 
component cleanly working.  I'm concerned about leaking processes.

Original comment by matts...@google.com on 19 Feb 2013 at 6:47

GoogleCodeExporter commented 8 years ago

Original comment by matts...@google.com on 19 Feb 2013 at 6:47

GoogleCodeExporter commented 8 years ago
Unsure if you have looked at the unofficial plugin they have all this done.

https://github.com/maven-gae-plugin/maven-gae-plugin/blob/master/maven-gae-plugi
n/src/main/java/net/kindleit/gae/StopGoal.java

Not sure what license they are using, so I am not sure if you can just use it 
or not.

Original comment by i...@electionear.com on 19 Feb 2013 at 7:03

GoogleCodeExporter commented 8 years ago
They are using Apache 2.0 license . Probably without specifying separate goal 
that isn't achievable.

Though I would leave current appengine:devserver goal as it is, and for 
integrations tests it would be nice to have separate goals: appengine:devstart 
and appengine:devstop - or something similar.

Using devserver is really convenient in command line for local runs since it is 
easy to kill process without leaking it :) 

Original comment by tadas.subonis@gmail.com on 20 Feb 2013 at 11:04

GoogleCodeExporter commented 8 years ago
Is there a plan to implement functionality to start and stop the dev server for 
use in integration testing? We'd really like to upgrade to the official plugin 
since the support seems better and we are having problems using 1.7.7 with the 
kindleit plugin.

Original comment by kevin.r....@gmail.com on 15 Apr 2013 at 9:04

GoogleCodeExporter commented 8 years ago
Yes, we're working on it.

Original comment by matts...@google.com on 15 Apr 2013 at 11:31

GoogleCodeExporter commented 8 years ago
Can you provide an ETA for this? Are we talking days/weeks/months? Thanks for 
letting us know!

Without this feature I am stuck with the KindleIT plugin because I need to run 
integration tests..

Original comment by ingo.jae...@gmail.com on 16 Apr 2013 at 1:58

GoogleCodeExporter commented 8 years ago
Many teams will use CI systems that potentially run more than one GAE build 
jobs concurrently. But only one job at a time will be able to open the GAE port 
e.g. 8888. To allow concurrent builds (i.e. more than one GAE instance running 
on the same Jenkins instance) the plugin should choose a port that is still 
open. An easy way to (partly) fix this, would be to let the GAE port be 
specified in the pom file of the project.

Original comment by ingo.jae...@gmail.com on 16 Apr 2013 at 4:54

GoogleCodeExporter commented 8 years ago
I think that would be the appengine.port property. 

Original comment by j...@jsawyer.net on 20 Apr 2013 at 11:34

GoogleCodeExporter commented 8 years ago
Yeah, you can specify the port in the pom and in the commandline.  It's just 
<port>

Original comment by matts...@google.com on 8 May 2013 at 10:28

GoogleCodeExporter commented 8 years ago
The 1.8.0 plugin now supports the goals appengine:devserver_start and 
devserver_stop, give them a whirl and reopen if necessary!

Original comment by matts...@google.com on 8 May 2013 at 11:16

GoogleCodeExporter commented 8 years ago
Woo-hoo!  Thank you very much! Haven't tried them yet, but now I can turn on my 
integration tests again!

Original comment by j...@jsawyer.net on 8 May 2013 at 11:18

GoogleCodeExporter commented 8 years ago
I'm confused by the Async nature of the devserver_start goal. For integration 
tests we would want a synchronous start so that maven can continue and run the 
integration tests *AFTER* the devserver has started.

I'm having issues where the devserver_start goal is run, the control is 
immediately returned to maven, which starts running it tests and hangs.

My config:

<plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>1.8.0</version>
    <executions>
        <execution>
            <id>server-start</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>devserver_start</goal>
            </goals>
        </execution>
        <execution>
            <id>server-stop</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>devserver_stop</goal>
            </goals>
        </execution>
   </executions>
</plugin>

Original comment by brian.ch...@aawhere.com on 6 Aug 2013 at 9:00

GoogleCodeExporter commented 8 years ago
Also noticed that the output of the devserver does not show up on the console. 
Is it logged somewhere? That output is useful when diagnosing failures.

Original comment by brian.ch...@aawhere.com on 6 Aug 2013 at 9:08

GoogleCodeExporter commented 8 years ago
The async devserver_start has been resolved in 1.8.1.

Original comment by oh...@wix.com on 7 Aug 2013 at 7:15

GoogleCodeExporter commented 8 years ago
Looks like this has been resolved, devserver_start returns control to maven 
after the dev server has started instead of immediatly.

Original comment by brian.ch...@aawhere.com on 3 Oct 2013 at 10:14