Горячее развертывание Junit недопустимо , почему?

#java #junit

Вопрос:

У меня есть программа JUnit, которая работает нормально

 LauncherDiscoveryRequestBuilder builder = LauncherDiscoveryRequestBuilder.request() ;  for (Class clazz : classes) {  builder.selectors( selectClass( clazz ) ) ;  }  LauncherDiscoveryRequest request = builder.build() ;  launcher.execute( request ) ;  

Обычный загрузчик классов, никаких проблем .

Теперь я написал простое горячее развертывание и получил классы в обычном режиме

 public class HotClassLoader extends ClassLoader {    private File classPath ;   public HotClassLoader(String path) throws IOException {  super(ClassLoader.getSystemClassLoader()) ;  this.classPath = new File( path ) ;  }  @Override  public Classlt;?gt; findClass(String name) throws ClassNotFoundException {  byte[] classByte = null;  classByte = readClassFile(name);  if (classByte == null || classByte.length == 0) {  throw new ClassNotFoundException("ClassNotFound : "   name);  }  return this.defineClass(name, classByte, 0, classByte.length);  }  private byte[] readClassFile(String name) throws ClassNotFoundException {  String fileName = name.replace(".", "/")   ".class";   File classFile = new File(this.classPath, fileName);  if (!classFile.exists() || classFile.isDirectory()) {  throw new ClassNotFoundException("ClassNotFound : "   name);  }  try(FileInputStream fis = new FileInputStream(classFile)){  int available = fis.available();  int bufferSize = Math.max(Math.min(1024, available), 256);  ByteBuffer buf = ByteBuffer.allocate(bufferSize);   byte[] bytes = null;   FileChannel channel = fis.getChannel();  while (channel.read(buf) gt; 0) {  buf.flip();  bytes = traslateArray(bytes, buf);  buf.clear();  }   return bytes;   } catch (FileNotFoundException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  return null;  }  public byte[] traslateArray(byte[] bytes, ByteBuffer buf) {  if (bytes == null) {  bytes = new byte[0];  }  byte[] _array = null;  if (buf.hasArray()) {  _array = new byte[buf.limit()];  System.arraycopy(buf.array(), 0, _array, 0, _array.length);  } else {  _array = new byte[0];  }  byte[] _implyArray = new byte[bytes.length   _array.length];  System.arraycopy(bytes, 0, _implyArray, 0, bytes.length);  System.arraycopy(_array, 0, _implyArray, bytes.length,  _array.length);  bytes = _implyArray;  return bytes;  } }  

Запустите JUnit снова, никакого ответа, никаких исключений, ничего , почему???

…………………………………………………………….

Вызывает ли JUnit загрузчик классов? Я не писал HotClassLoader полностью.