1.1 --- a/testng.maven/src/org/netbeans/modules/contrib/testng/maven/testngActionMappings.xml Mon Jan 02 13:48:25 2012 +0100
1.2 +++ b/testng.maven/src/org/netbeans/modules/contrib/testng/maven/testngActionMappings.xml Mon Jan 02 21:25:38 2012 +0100
1.3 @@ -62,7 +62,6 @@
1.4 </goals>
1.5 <properties>
1.6 <jpda.listen>true</jpda.listen>
1.7 -<!-- ", "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE-->
1.8 <maven.surefire.debug>-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=n,address=${jpda.address}</maven.surefire.debug>
1.9 </properties>
1.10 </action>
2.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGExecutionManager.java Mon Jan 02 13:48:25 2012 +0100
2.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGExecutionManager.java Mon Jan 02 21:25:38 2012 +0100
2.3 @@ -1,7 +1,7 @@
2.4 /*
2.5 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
2.6 *
2.7 - * Copyright © 2009-2011 Oracle and/or its affiliates. All rights reserved.
2.8 + * Copyright © 2009-2012 Oracle and/or its affiliates. All rights reserved.
2.9 *
2.10 * The contents of this file are subject to the terms of either the GNU
2.11 * General Public License Version 2 only ("GPL") or the Common
2.12 @@ -39,11 +39,18 @@
2.13 package org.netbeans.modules.contrib.testng.output;
2.14
2.15 import java.io.File;
2.16 +import java.io.IOException;
2.17 import java.util.Properties;
2.18 import java.util.Set;
2.19 +import java.util.logging.Level;
2.20 +import java.util.logging.Logger;
2.21 import javax.swing.event.ChangeListener;
2.22 import org.apache.tools.ant.module.spi.AntSession;
2.23 import org.netbeans.api.project.Project;
2.24 +import org.netbeans.modules.contrib.testng.actions.TestConfigAccessor;
2.25 +import org.netbeans.modules.contrib.testng.api.TestNGSupport;
2.26 +import org.netbeans.modules.contrib.testng.spi.TestConfig;
2.27 +import org.netbeans.modules.contrib.testng.spi.TestNGSupportImplementation;
2.28 import org.netbeans.modules.gsf.testrunner.api.RerunHandler;
2.29 import org.netbeans.modules.gsf.testrunner.api.RerunType;
2.30 import org.netbeans.modules.gsf.testrunner.api.TestSession;
2.31 @@ -67,6 +74,8 @@
2.32 private TestSession testSession;
2.33 private Lookup lookup = Lookup.EMPTY;
2.34
2.35 + private static final Logger LOGGER = Logger.getLogger(TestNGExecutionManager.class.getName());
2.36 +
2.37 public TestNGExecutionManager(AntSession session, TestSession testSession, Properties props) {
2.38 this.testSession = testSession;
2.39 this.properties = props;
2.40 @@ -115,6 +124,7 @@
2.41 }
2.42 }
2.43 } catch (Exception e) {
2.44 + LOGGER.log(Level.SEVERE, null, e);
2.45 }
2.46 }
2.47
2.48 @@ -125,43 +135,59 @@
2.49 }
2.50
2.51 public void rerun(Set<Testcase> tests) {
2.52 - //not implemented yet
2.53 + Project p = testSession.getProject();
2.54 + TestNGSupportImplementation.TestExecutor exec = TestNGSupport.findTestNGSupport(p).createExecutor(p);
2.55 + TestConfig conf = TestConfigAccessor.getDefault().createTestConfig(p.getProjectDirectory(), true, null, null, null);
2.56 + try {
2.57 + exec.execute(TestNGSupport.Action.RUN_FAILED, conf);
2.58 + } catch (IOException ex) {
2.59 + LOGGER.log(Level.SEVERE, null, ex);
2.60 + }
2.61 }
2.62
2.63 public boolean enabled(RerunType type) {
2.64 switch (type){
2.65 - case ALL: return true;
2.66 - case CUSTOM: return false;
2.67 - default: return false;
2.68 + case ALL:
2.69 + return true;
2.70 + case CUSTOM:
2.71 + Project p = testSession.getProject();
2.72 + if (TestNGSupport.isActionSupported(TestNGSupport.Action.RUN_FAILED, p)) {
2.73 + return TestNGSupport.findTestNGSupport(p).createExecutor(p).hasFailedTests();
2.74 + }
2.75 + return false;
2.76 + default:
2.77 + return false;
2.78 }
2.79 }
2.80
2.81 - public boolean enabled() {
2.82 - if ((scriptFile == null) || (targets == null) || (targets.length == 0)) {
2.83 - return false;
2.84 - }
2.85 +// public boolean enabled() {
2.86 +// if ((scriptFile == null) || (targets == null) || (targets.length == 0)) {
2.87 +// return false;
2.88 +// }
2.89 +//
2.90 +// Project project = testSession.getProject();
2.91 +// ActionProvider actionProvider = project.getLookup().lookup(ActionProvider.class);
2.92 +// if (actionProvider != null) {
2.93 +// boolean runSupported = false;
2.94 +// for (String action : actionProvider.getSupportedActions()) {
2.95 +// if (action.equals(targets[0])) {
2.96 +// runSupported = true;
2.97 +// break;
2.98 +// }
2.99 +// }
2.100 +// if (runSupported && actionProvider.isActionEnabled(targets[0], lookup)) {
2.101 +// return true;
2.102 +// }
2.103 +// }
2.104 +//
2.105 +// return false;
2.106 +// }
2.107
2.108 - Project project = testSession.getProject();
2.109 - ActionProvider actionProvider = project.getLookup().lookup(ActionProvider.class);
2.110 - if (actionProvider != null) {
2.111 - boolean runSupported = false;
2.112 - for (String action : actionProvider.getSupportedActions()) {
2.113 - if (action.equals(targets[0])) {
2.114 - runSupported = true;
2.115 - break;
2.116 - }
2.117 - }
2.118 - if (runSupported && actionProvider.isActionEnabled(targets[0], lookup)) {
2.119 - return true;
2.120 - }
2.121 - }
2.122 -
2.123 - return false;
2.124 - }
2.125 -
2.126 + @Override
2.127 public void addChangeListener(ChangeListener listener) {
2.128 }
2.129
2.130 + @Override
2.131 public void removeChangeListener(ChangeListener listener) {
2.132 }
2.133 }
3.1 --- a/testng/src/org/netbeans/modules/contrib/testng/resources/layer.xml Mon Jan 02 13:48:25 2012 +0100
3.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/resources/layer.xml Mon Jan 02 21:25:38 2012 +0100
3.3 @@ -126,6 +126,15 @@
3.4 </folder>
3.5 </folder>
3.6 </folder>
3.7 + <folder name="Navigator">
3.8 + <folder name="Panels">
3.9 + <folder name="text">
3.10 + <folder name="x-testng+xml">
3.11 + <file name="org-netbeans-modules-xml-text-navigator-XMLNavigatorPanel.instance"/>
3.12 + </folder>
3.13 + </folder>
3.14 + </folder>
3.15 + </folder>
3.16 <folder name="Services">
3.17 <folder name="MIMEResolver">
3.18 <file name="testng-suite-resolver.xml" url="testng-suite-resolver.xml">