###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

RemoteTestRunner.error.classnotfound= Class not found {0}
RemoteTestRunner.error.exception= "Error:  " {0}
RemoteTestRunner.error.invoke= Failed to invoke suite(): {0}
RemoteTestRunner.error.load= Could not reload Test: {0}
RemoteTestRunner.testName={0}({1})
RemoteTestRunner.error.connect= Could not connect to: {0} : {1}			
RemoteTestRunner.error.classnamemissing=Error: parameter '-classNames' or '-className' not specified
RemoteTestRunner.error.portmissing=Error: parameter '-port' not specified
RemoteTestRunner.error.notestreturn=setUpTest should return junit.framework.Test
RemoteTestRunner.error.shouldbepublic=setUpTest() must be public
RemoteTestRunner.error.shouldbestatic=setUpTest() must be static
RemoteTestRunner.error.nullreturn=setUpTest returned null
RemoteTestRunner.error.couldnotinvoke=setUpTest could not invoke setup: {0}
RemoteTestRunner.error.invocationexception=setUpTest invocation exception: {0}
RemoteTestRunner.error.couldnotcreate=Could not create test: 

