/*******************************************************************************
 * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * Johannes Faltermeier
 ******************************************************************************/
package org.eclipse.emf.emfstore.client.test.alltests;

import org.junit.runner.RunWith;

/**
 * Test suite for all SWT, API and ChangeTracking Tests. Used for testing with
 * transactional editing domain on build server.
 *
 * @author jfaltermeier
 *
 */
@RunWith(DynamicSuite.class)
public class TransactionalEditingDomainTests {

}
