I am getting ClassNotFoundException
when running tests with junit:
I have a bunch of testcases that tests Class Main. The Main class has a method that takes in a string representing a datatype and internally builds an instance of the type using Class.forName( argument ).newInstance()
. Now the methods itself works fine when i test manually. but while running test cases with junit i get ClassNotFoundException
(in the method) for the passed in datatype.
Then i added a line: new MyDataType to the method being tested. Curiously the opration suceeds while the succeding line where i create an instance through Class.forName( MyDataType ).newInstance()
fails.
Class Main{
public void someMethod( String dataType ){
new MyDataType(); // suceeds
Class.forName( dataType ).newInstance(); // got Exception when dataType = "MyDataType"
}
}
Why is this? When i googled i found a number of answers suggesting that MyDataType.class
might not be in classpath
. I dont think thats the case here since new MyDataType()
runs fine.
My runtime and build time classpath includes the jar containing the required classes.