CopyPastor

Detecting plagiarism made easy.

Score: 2; Reported for: String similarity, Exact paragraph match Open both answers

Possible Plagiarism

Reposted on 2022-11-04
by Mert Ekinci

Original Post

Original - Posted on 2022-11-04
by Mert Ekinci



            
Present in both answers; Present only in the new answer; Present only in the old answer;

I spent a lot of effort for this. That's how I implement. Maybe you can follow it.

First of all, you should download the APIClient.java and APIException.java files from the link below.
[TestrailApi in github][1]
Then you need to add these files to the following path in your project. For example: YourProjectFolder/src/main/java/testrails/
In your karate-config.js file, after each test, you can send your case tags, test results and error messages to the BaseTest.java file, which I will talk about shortly.
**karate-config.js file**
```
function fn() {
var config = { baseUrl: 'http://111.111.1.111:11111', }; karate.configure('afterScenario', () => { try{ const BaseTestClass = Java.type('features.BaseTest'); BaseTestClass.sendScenarioResults(karate.scenario.failed, karate.scenario.tags, karate.info.errorMessage); }catch(error) { console.log(error) } }); return config; }
```
Please dont forget give tag to scenario in Feature file. For example **@1111**
```
Feature: ExampleFeature
Background: * def conf = call read('../karate-config.js') * url conf.baseUrl
@1111 Scenario: Example
```
Next, create a runner file named BaseTests.java

**BaseTest.java file**

```
package features;
import com.intuit.karate.junit5.Karate; import net.minidev.json.JSONObject; import org.junit.jupiter.api.BeforeAll; import testrails.APIClient; import testrails.APIException;
import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map;
public class BaseTest {
private static APIClient client = null; private static String runID = null;
@BeforeAll public static void beforeClass() throws Exception { String fileName = System.getProperty("karate.options"); //Login to API client = new APIClient("Write Your host, for example https://yourcompanyname.testrail.io/"); client.setUser("user.name@companyname.com"); client.setPassword("password");
//Create Test Run Map data = new HashMap(); data.put("suite_id", "Write Your Project SuitId(Only number)"); data.put("name", "Api Test Run"); data.put("description", "Karate Architect Regression Running");

JSONObject c = (JSONObject) client.sendPost("add_run/" + TEST_AUTOMATINO_PROJECT_ID, data); runID = c.getAsString("id"); } //Send Scenario Result to Testrail public static void sendScenarioResults(boolean failed, List<String> tags, String errorMessage) { try { Map data = new HashMap(); data.put("status_id", failed ? 5 : 1); data.put("comment", errorMessage); client.sendPost("add_result_for_case/" + runID + "/" + tags.get(0), data); } catch (IOException e) { e.printStackTrace(); } catch (APIException e) { e.printStackTrace(); } }
@Karate.Test Karate ExampleFeatureRun() { return Karate.run("ExampleFeatureRun").relativeTo(getClass()); }
}
```



[1]: https://github.com/gurock/testrail-api/tree/master/java/com/gurock/testrail
I spent a lot of effort for this. That's how I implement. Maybe you can follow it.

First of all, you should download the APIClient.java and APIException.java files from the link below.
[TestrailApi in github][1]
Then you need to add these files to the following path in your project. For example: YourProjectFolder/src/main/java/testrails/
In your karate-config.js file, after each test, you can send your case tags, test results and error messages to the BaseTest.java file, which I will talk about shortly.
**karate-config.js file**
```
function fn() {
var config = { baseUrl: 'http://111.111.1.111:11111', }; karate.configure('afterScenario', () => { try{ const BaseTestClass = Java.type('features.BaseTest'); BaseTestClass.sendScenarioResults(karate.scenario.failed, karate.scenario.tags, karate.info.errorMessage); }catch(error) { console.log(error) } }); return config; }
```
Please dont forget give tag to scenario in Feature file. For example **@1111**
```
Feature: ExampleFeature
Background: * def conf = call read('../karate-config.js') * url conf.baseUrl
@1111 Scenario: Example
```
Next, create a runner file named BaseTests.java

**BaseTest.java file**

```
package features;
import com.intuit.karate.junit5.Karate; import net.minidev.json.JSONObject; import org.junit.jupiter.api.BeforeAll; import testrails.APIClient; import testrails.APIException;
import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map;
public class BaseTest {
private static APIClient client = null; private static String runID = null;
@BeforeAll public static void beforeClass() throws Exception { String fileName = System.getProperty("karate.options"); //Login to API client = new APIClient("Write Your host, for example https://yourcompanyname.testrail.io/"); client.setUser("user.name@companyname.com"); client.setPassword("password");
//Create Test Run Map data = new HashMap(); data.put("suite_id", "Write Your Project SuitId(Only number)"); data.put("name", "Api Test Run"); data.put("description", "Karate Architect Regression Running");

JSONObject c = (JSONObject) client.sendPost("add_run/" + TEST_AUTOMATINO_PROJECT_ID, data); runID = c.getAsString("id"); } //Send Scenario Result to Testrail public static void sendScenarioResults(boolean failed, List<String> tags, String errorMessage) { try { Map data = new HashMap(); data.put("status_id", failed ? 5 : 1); data.put("comment", errorMessage); client.sendPost("add_result_for_case/" + runID + "/" + tags.get(0), data); } catch (IOException e) { e.printStackTrace(); } catch (APIException e) { e.printStackTrace(); } }
@Karate.Test Karate ExampleFeatureRun() { return Karate.run("ExampleFeatureRun").relativeTo(getClass()); }
}
```



[1]: https://github.com/gurock/testrail-api/tree/master/java/com/gurock/testrail

        
Present in both answers; Present only in the new answer; Present only in the old answer;