code: protected synchronized String createFileName() {
  		String threadName = Thread.currentThread().getName();
  
  		if (fileName != null) {
  			String baseName = getBaseName(fileName);
  			String extension = getExtension(fileName);
  			return baseName + "-[" + threadName + "]." + extension;
  		}
  
  		Configuration config = configProvider.get();
  
  		String id = config.get(JFunkConstants.SCRIPT_NAME);
  		if (isNotBlank(id)) {
  			id = substringBeforeLast(id, "."); // strip .groovy extension
  		} else {
  			id = config.get(JFunkConstants.UNIT_TEST_METHOD);
  		}
  
  		return getName() + "-" + id + "-[" + threadName + "]." + getFileExtension();
  	}
docs: <p>
  Creates the file name for the report file. The following logic is applied:
  </p>
  <p>
  If a file name was passed to the constructor:<br />
  {@code <base name of the file name>-[<thread name>].<extension of the file name>}, e. g.
  {@code path/to/archivedir/myreport-[01].csv}
  </p>
  <p>
  If {@code null} was passed to the constructor as file name:<br >
  {@code <reporter's name>-<script base name or test method name>-[<thread name>].<reporter's file extension>}
  </p>
  
  @return the report file name