###############################################################################
# Copyright (c) 2000, 2013 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

RemoteTestRunner.error= error
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.junit4=Could not adapt JUnit 4 test
RemoteTestRunner.error.connect= Could not connect to: {0} : {1}			
RemoteTestRunner.error.classnamemissing=Error: parameter '-classNames' or '-className' not specified
RemoteTestRunner.error.suite.notstatic=suite() must be static
RemoteTestRunner.error.suite.nullreturn=suite() returned null
RemoteTestRunner.error.invalidloader=Error: test loader {0} not found:\n{1}
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: 
RemoteTestRunner.error.rerunClass=JUnit4 test classes cannot be rerun 
RemoteTestRunner.error.couldnotprintstacktrace=Could not determine original stack trace
