package org.eclipse.wst.common.frameworks.artifactedit.tests;



import junit.framework.Test;
import junit.framework.TestSuite;

public class ArtifactEditAPITests extends TestSuite {
	
	
	
	public static Test suite() {
		return new ArtifactEditAPITests();
	}

	public ArtifactEditAPITests() {
		super();
		//addTest(new SimpleTestSuite(ArtifactEditTest.class));
	}

}
