Should export the Basic Report HTML with its parent directory yyyyMMdd_hhmmss

I have an improvement suggestion for Base Report/ Export HTML functionality.

I’m using Katalon Studio 6.3.3. When I ran a Test Suite Collection, in the Reports directory, following directories and files were produced.

Reports/
└── 20191009_145540
    ├── 47News
    │   ├── Execute_chronos
    │   │   └── 20191009_145540
    │   │       └── 20191009_145540.rp
    │   ├── chronos_capture
    │   │   └── 20191009_145541
    │   │       ├── 20191009_145541.csv
    │   │       ├── 20191009_145541.html
    │   │       ├── 20191009_145541470020689.html
    │   │       ├── JUnit_Report.xml
    │   │       ├── execution.properties
    │   │       ├── execution.uuid
    │   │       ├── execution0.log
    │   │       └── testCaseBinding
    │   └── chronos_exam
    │       └── 20191009_145542
    │           ├── 20191009_145542.csv
    │           ├── 20191009_145542.html
    │           ├── 20191009_1455421416026425.html
    │           ├── JUnit_Report.xml
    │           ├── execution.properties
    │           ├── execution.uuid
    │           ├── execution0.log
    │           └── testCaseBinding
    └── VT
        ├── cleanMaterials
        │   └── 20191009_145540
        │       ├── 20191009_145540-701604860.html
        │       ├── 20191009_145540.csv
        │       ├── 20191009_145540.html
        │       ├── JUnit_Report.xml
        │       ├── execution.properties
        │       ├── execution.uuid
        │       ├── execution0.log
        │       └── testCaseBinding
        └── makeIndex
            └── 20191009_145543
                ├── 20191009_145543-1317837080.html
                ├── 20191009_145543.csv
                ├── 20191009_145543.html
                ├── JUnit_Report.xml
                ├── execution.properties
                ├── execution.uuid
                ├── execution0.log
                └── testCaseBinding

13 directories, 33 files

Then I did “Export HTML” for the Test Suite Collection specifying ~/temp directory as destination, I got the following:

temp
├── 20191009_145540-701604860.html
├── 20191009_145541470020689.html
├── 20191009_1455421416026425.html
├── 20191009_145543-1317837080.html
├── index-frame-view.html
└── index.html

Almost there, but I think not good enough. The Export function does not create the parent directory in the format of yyyyMMdd_hhmmss.


improvement suggestion

I want the Export destination dir to be created as follows:

temp/
├── 20191009_145540
│   ├── 20191009_145540-701604860.html
│   ├── 20191009_145541470020689.html
│   ├── 20191009_1455421416026425.html
│   ├── 20191009_145543-1317837080.html
│   ├── index-frame-view.html
│   └── index.html
└── 20191009_145542
    ├── 20191009_145540-701604860.html
    ├── 20191009_145541470020689.html
    ├── 20191009_1455421416026425.html
    ├── 20191009_145543-1317837080.html
    ├── index-frame-view.html
    └── index.html

Having the parent directory of yyyyMMdd_hhmmss in the destination location improves the usability of the Export HTML function.

My usage senario: I will execute a Test Suite Collection often and continuously (2 or 3 times a day for on going months). I want to share the Report with my team colleagues. I want to export the Report, when failed, into a directory attached to a Windows file server shared by the team. I will send e-mail to those who may concern the failed Test informing the path of the index.html of failed test.

If the Export function automatically creates the parent directory of yyyyMMdd_hhmmss, then operation is just easy.

But the current Export function does not create the parent, so operation is … badly designed. I have to create a container directory of yyyyMdd_hhmmss myself manually before exporting the Report HTML. ---- How come do I have to do this? Why not KS does this for me?

workaround

import org.apache.commons.io.FileUtils

import com.kms.katalon.core.annotation.AfterTestSuite
import com.kms.katalon.core.configuration.RunConfiguration
import com.kms.katalon.core.context.TestSuiteContext

   	@AfterTestSuite

	def printInfo(TestSuiteContext testSuiteContext) {
		
		Date today = new Date()
		String todaysDate = today.format('yyyy-MM-dd HH_mm_ss')
	
		FileUtils.moveFile(
			FileUtils.getFile("path_to_your_report/report.html"),
			FileUtils.getFile('path_to_your_report/report_'+todaysDate+'.html'));
		
		FileUtils.moveFile(
			FileUtils.getFile("path_to_your_report/JUnit_Report.xml"),
			FileUtils.getFile('path_to_your_report/JUnit_Report_'+todaysDate+'.xml'));
		

	}