Hi @kazurayam, sorry for the directly mention.
We’re using your Visualtesting with katalon (thank you for your great works!!)… and we are facing a trouble.
My tests are passed in Mac OS but it fails in Windows. (we want to use it in azure DevOps, it fails both in DevOps and virtual Windows env.)
What are the possible reasons?
I think it fails when getting the location of “Storage” (and “Report”) folder… but they are exist at the same project.
I’m a beginner for automation, so please let me know if you need more information.
2019-12-24 06:38:38.882 INFO com.kms.katalon.core.util.KeywordUtil - VisualTestingListenerImpl#beforeTestSuite testSuiteTimestamp=20191224_063826
2019-12-24 06:38:38.977 ERROR c.k.k.core.context.internal.TestHooker - ❌ java.lang.NullPointerException: Cannot invoke method getTCaseResultList() on null object
at com.kazurayam.materials.impl.TSuiteResultImpl$getTCaseResultList$5.call(Unknown Source)
at com.kazurayam.materials.repository.RepositoryFileVisitor.resolveLastModifiedOfTSuiteResult(RepositoryFileVisitor.groovy:233)
at com.kazurayam.materials.repository.RepositoryFileVisitor.postVisitDirectory(RepositoryFileVisitor.groovy:136)
at com.kazurayam.materials.repository.RepositoryFileVisitor.postVisitDirectory(RepositoryFileVisitor.groovy)
at java_nio_file_Files$walkFileTree.call(Unknown Source)
at com.kazurayam.materials.repository.RepositoryFileScanner.scan(RepositoryFileScanner.groovy:109)
at com.kazurayam.materials.repository.RepositoryFileScanner$scan.call(Unknown Source)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.scan(MaterialRepositoryImpl.groovy:95)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.<init>(MaterialRepositoryImpl.groovy:78)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.newInstance(MaterialRepositoryImpl.groovy:88)
at com.kazurayam.materials.impl.MaterialRepositoryImpl$newInstance.call(Unknown Source)
at com.kazurayam.materials.MaterialRepositoryFactory.createInstance(MaterialRepositoryFactory.groovy:33)
at com.kazurayam.materials.MaterialRepositoryFactory$createInstance.call(Unknown Source)
at com.kazurayam.materials.impl.MaterialStorageImpl.<init>(MaterialStorageImpl.groovy:45)
at com.kazurayam.materials.impl.MaterialStorageImpl.newInstance(MaterialStorageImpl.groovy:55)
at com.kazurayam.materials.impl.MaterialStorageImpl$newInstance.call(Unknown Source)
at com.kazurayam.materials.MaterialStorageFactory.createInstance(MaterialStorageFactory.groovy:19)
at com.kazurayam.materials.MaterialStorageFactory$createInstance.call(Unknown Source)
at com.kazurayam.visualtesting.VisualTestingListenerImpl.beforeTestSuite(VisualTestingListenerImpl.groovy:160)
at com.kazurayam.visualtesting.VisualTestingListenerImpl$beforeTestSuite.call(Unknown Source)
at VTListener.beforeTestSuite(VTListener.groovy:19)
at VTListener.invokeMethod(VTListener.groovy)
at com.kms.katalon.core.context.internal.TestHooker.invokeMethod(TestHooker.java:111)
at com.kms.katalon.core.context.internal.TestHooker.lambda$3(TestHooker.java:95)
at com.kms.katalon.core.context.internal.TestHooker.invokeContextMethods(TestHooker.java:94)
at com.kms.katalon.core.context.internal.TestListenerCollector.lambda$3(TestListenerCollector.java:88)
at com.kms.katalon.core.context.internal.TestListenerCollector.handleListenerEvent(TestListenerCollector.java:85)
at com.kms.katalon.core.context.internal.ExecutionEventManager.publicEvent(ExecutionEventManager.java:36)
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:89)
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157)
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
at TempTestSuite1577169506664.run(TempTestSuite1577169506664.groovy:36)
2019-12-24 06:38:39.206 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2019-12-24 06:38:39.207 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/VT/cleanMaterials
2019-12-24 06:38:39.398 INFO c.k.k.c.keyword.builtin.CommentKeyword - VisualTestingListenerImpl#beforeTestCase GlobalVariable.VT_CURRENT_TESTSUITE_ID is "Test Suites/VisualTest/VT/cleanMaterials"
2019-12-24 06:38:39.413 INFO c.k.k.c.keyword.builtin.CommentKeyword - VisualTestingListenerImpl#beforeTestCase GlobalVariable.VT_CURRENT_TESTSUITE_TIMESTAMP is "20191224_063826"
2019-12-24 06:38:39.413 INFO c.k.k.c.keyword.builtin.CommentKeyword - VisualTestingListenerImpl#beforeTestCase GlobalVariable.VT_CURRENT_TESTCASE_ID is "Test Cases/VT/cleanMaterials"
2019-12-24 06:38:39.413 INFO c.k.k.c.keyword.builtin.CommentKeyword - VisualTestingListenerImpl#beforeTestCase GlobalVariable.VT_MATERIAL_REPOSITORY is located at "C:\Users\Administrator\katalon-ui-test\XXXXX\Materials"
Start recording video for test case 'Test Cases/VT/cleanMaterials'.
2019-12-24 06:38:39.429 ERROR c.k.k.core.context.internal.TestHooker - ❌ java.lang.NullPointerException: Cannot invoke method getTCaseResultList() on null object
at com.kazurayam.materials.impl.TSuiteResultImpl$getTCaseResultList$5.call(Unknown Source)
at com.kazurayam.materials.repository.RepositoryFileVisitor.resolveLastModifiedOfTSuiteResult(RepositoryFileVisitor.groovy:233)
at com.kazurayam.materials.repository.RepositoryFileVisitor.postVisitDirectory(RepositoryFileVisitor.groovy:136)
at com.kazurayam.materials.repository.RepositoryFileVisitor.postVisitDirectory(RepositoryFileVisitor.groovy)
at java_nio_file_Files$walkFileTree.call(Unknown Source)
at com.kazurayam.materials.repository.RepositoryFileScanner.scan(RepositoryFileScanner.groovy:109)
at com.kazurayam.materials.repository.RepositoryFileScanner$scan.call(Unknown Source)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.scan(MaterialRepositoryImpl.groovy:95)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.<init>(MaterialRepositoryImpl.groovy:78)
at com.kazurayam.materials.impl.MaterialRepositoryImpl.newInstance(MaterialRepositoryImpl.groovy:88)
at com.kazurayam.materials.impl.MaterialRepositoryImpl$newInstance.call(Unknown Source)
at com.kazurayam.materials.MaterialRepositoryFactory.createInstance(MaterialRepositoryFactory.groovy:33)
at com.kazurayam.materials.MaterialRepositoryFactory$createInstance.call(Unknown Source)
at com.kazurayam.materials.impl.MaterialStorageImpl.<init>(MaterialStorageImpl.groovy:45)
at com.kazurayam.materials.impl.MaterialStorageImpl.newInstance(MaterialStorageImpl.groovy:55)
at com.kazurayam.materials.impl.MaterialStorageImpl$newInstance.call(Unknown Source)
at com.kazurayam.materials.MaterialStorageFactory.createInstance(MaterialStorageFactory.groovy:19)
at com.kazurayam.materials.MaterialStorageFactory$createInstance.call(Unknown Source)
at com.kazurayam.visualtesting.VisualTestingListenerImpl.beforeTestCase(VisualTestingListenerImpl.groovy:208)
at com.kazurayam.visualtesting.VisualTestingListenerImpl$beforeTestCase$0.call(Unknown Source)
at VTListener.beforeTestCase(VTListener.groovy:25)
at VTListener.invokeMethod(VTListener.groovy)
at com.kms.katalon.core.context.internal.TestHooker.invokeMethod(TestHooker.java:111)
at com.kms.katalon.core.context.internal.TestHooker.lambda$3(TestHooker.java:95)
at com.kms.katalon.core.context.internal.TestHooker.invokeContextMethods(TestHooker.java:94)
at com.kms.katalon.core.context.internal.TestListenerCollector.lambda$3(TestListenerCollector.java:88)
at com.kms.katalon.core.context.internal.TestListenerCollector.handleListenerEvent(TestListenerCollector.java:85)
at com.kms.katalon.core.context.internal.ExecutionEventManager.publicEvent(ExecutionEventManager.java:36)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:219)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:169)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:142)
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:91)
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157)
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
at TempTestSuite1577169506664.run(TempTestSuite1577169506664.groovy:36)





