[jboss-svn-commits] JBoss Common SVN: r4800 - in arquillian/trunk: testng/src/main/java/org/jboss/arquillian/testng and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 27 11:30:48 EDT 2010
Author: aslak
Date: 2010-07-27 11:30:46 -0400 (Tue, 27 Jul 2010)
New Revision: 4800
Modified:
arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
Log:
ARQ-228 Make sure that when 1. test case fail, don't run the others. JUnit Runner will now refuse(by throwing exception) to run 2. test case if 1. test case did not manage to initialize Arquillian.
Modified: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java 2010-07-26 21:55:29 UTC (rev 4799)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java 2010-07-27 15:30:46 UTC (rev 4800)
@@ -71,26 +71,39 @@
public Arquillian(Class<?> klass) throws InitializationError
{
super(klass);
- lastCreatedRunner.set(this);
- if(deployableTest.get() == null)
+ try
{
- Configuration configuration = new XmlConfigurationBuilder().build();
- deployableTest.set(DeployableTestBuilder.build(configuration));
- try
+ // first time we're being initialized
+ if(deployableTest.get() == null)
{
- deployableTest.get().beforeSuite();
- }
- catch (Exception e)
- {
- throw new InitializationError(Arrays.asList((Throwable)e));
+ // no, initialization has been attempted before, refuse to do anything else
+ if(lastCreatedRunner.get() != null)
+ {
+ throw new RuntimeException("Arquillian has previously been attempted initialized, but failed. See previous exceptions for cause.");
+ }
+ Configuration configuration = new XmlConfigurationBuilder().build();
+ TestRunnerAdaptor adaptor = DeployableTestBuilder.build(configuration);
+ try
+ {
+ // don't set it if beforeSuite fails
+ adaptor.beforeSuite();
+ deployableTest.set(adaptor);
+ }
+ catch (Exception e)
+ {
+ throw new InitializationError(Arrays.asList((Throwable)e));
+ }
}
}
+ finally
+ {
+ lastCreatedRunner.set(this);
+ }
}
@Override
public void run(RunNotifier notifier)
{
- // register to listen for RunFinished to execute AfterSuite
notifier.addListener(new RunListener()
{
@Override
@@ -144,8 +157,15 @@
@Override
public void evaluate() throws Throwable
{
- deployableTest.get().beforeClass(Arquillian.this.getTestClass().getJavaClass());
- statementWithBefores.evaluate();
+ try
+ {
+ deployableTest.get().beforeClass(Arquillian.this.getTestClass().getJavaClass());
+ statementWithBefores.evaluate();
+ }
+ catch (Exception e) // catch and rethrow only to be able to set a break point.
+ {
+ throw e;
+ }
}
};
}
Modified: arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
===================================================================
--- arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java 2010-07-26 21:55:29 UTC (rev 4799)
+++ arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java 2010-07-27 15:30:46 UTC (rev 4800)
@@ -54,17 +54,18 @@
if(deployableTest.get() == null)
{
Configuration configuration = new XmlConfigurationBuilder().build();
- deployableTest.set(DeployableTestBuilder.build(configuration));
+ TestRunnerAdaptor adaptor = DeployableTestBuilder.build(configuration);
+ adaptor.beforeSuite();
+ deployableTest.set(adaptor); // don't set TestRunnerAdaptor if beforeSuite fails
}
- deployableTest.get().beforeSuite();
}
@AfterSuite(alwaysRun = true)
public void arquillianAfterSuite() throws Exception
{
- if (deployableTest.get() == null)
+ if (deployableTest.get() == null)
{
- return;
+ return; // beforeSuite failed
}
deployableTest.get().afterSuite();
deployableTest.set(null);
@@ -153,8 +154,14 @@
@DataProvider(name = Arquillian.ARQUILLIAN_DATA_PROVIDER)
public Object[][] arquillianArgumentProvider(Method method)
{
+ Object[][] values = new Object[1][method.getParameterTypes().length];
+
+ if (deployableTest.get() == null)
+ {
+ return values;
+ }
+
Object[] parameterValues = TestEnrichers.enrich(deployableTest.get().getActiveContext(), method);
- Object[][] values = new Object[1][method.getParameterTypes().length];
values[0] = parameterValues;
return values;
More information about the jboss-svn-commits
mailing list