All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testng.JUnitConverterTask Maven / Gradle / Ivy

There is a newer version: 7.10.2
Show newest version
package org.testng;

import java.io.File;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.testng.junit.JUnitDirectoryConverter;

/**
 * @author Andy.Glover
 *
 */
public class JUnitConverterTask extends Task {
  private File m_sourceDirectory;
  private File m_outputDirectory;
  private boolean m_useAnnotations;
  
  public JUnitConverterTask() {
    super();
  }
  
  @Override
  public void execute() throws BuildException {
    this.validate();

    final JUnitDirectoryConverter convertor = new JUnitDirectoryConverter(
        m_sourceDirectory, m_outputDirectory, null, m_useAnnotations);
    final int result = convertor.convert();

    if (result > -1) {
      this.log(result + " files generated");
    }
    else {
      //this could be better
      this.log("There were errors in file generation");
    }
  }
  
  private void validate() throws BuildException {
    if (this.m_outputDirectory == null || this.m_outputDirectory.equals("")) {
      throw new BuildException("OutputDir must have a value");
    }
    if (this.m_sourceDirectory == null || this.m_sourceDirectory.equals("")) {
      throw new BuildException("SourceDir must have a value");
    }
  }
  
  @Override
  public void init() throws BuildException {
    super.init();
    m_useAnnotations = true;
  }
  
  /**
   * Setter for report's output directory
   * @param outputDirectory
   */
  public void setOutputDir(final File outputDirectory) {
    m_outputDirectory = outputDirectory;
  }
  
  /**
   * @param sourceDirectory
   */
  public void setSourceDir(final File sourceDirectory) {
    m_sourceDirectory = sourceDirectory;
  }
  
  /**
   * @param annotations
   */
  public void setAnnotations(final boolean annotations) {
    m_useAnnotations = annotations;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy