All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.seleniumtests.core.utils.TestNGResultUtils Maven / Gradle / Ivy

/**
 * Orignal work: Copyright 2015 www.seleniumtests.com
 * Modified work: Copyright 2016 www.infotel.com
 * 				Copyright 2017-2019 B.Hecquet
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 	http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.seleniumtests.core.utils;

import java.util.Arrays;

import org.testng.ITestResult;

import com.seleniumtests.core.runner.CucumberScenarioWrapper;
import com.seleniumtests.util.StringUtility;

public class TestNGResultUtils {

	private TestNGResultUtils() {
		// nothing to do
	}
	
	public static String getTestName(ITestResult testNGResult) {
		if (testNGResult == null) {
			return null;
		}
		
    	if (testNGResult.getParameters().length == 1 
    			&& testNGResult.getParameters()[0] instanceof CucumberScenarioWrapper 
//    			&& "com.seleniumtests.core.runner.CucumberTestPlan".equals(testNGResult.getMethod().getTestClass().getName()) // prevents from doing unit tests
    			) {
    		return testNGResult.getParameters()[0].toString();
    	} else {
    		return testNGResult.getMethod().getMethodName();
    	}
	}
	
    /**
     * Generate a String which is unique for each combination of suite/testNG test/class/test method/parameters
     * @return
     */
    public static String getHashForTest(ITestResult testNGResult) {

    	String uniqueIdentifier;
    	if (testNGResult != null) {
    		
        	
    		String testNameModified = StringUtility.replaceOddCharsFromFileName(getTestName(testNGResult));
    		
    		uniqueIdentifier = testNGResult.getTestContext().getSuite().getName()
	    			+ "-" + testNGResult.getTestContext().getName()
	    			+ "-" + testNGResult.getMethod().getRealClass().getName()
	    			+ "-" + testNameModified
	    			+ "-" + Arrays.hashCode(testNGResult.getParameters());
    	} else {
    		uniqueIdentifier = "null-null-null-null-0";
    	}
    	
    	return uniqueIdentifier;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy