-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit c9638fe
Showing
10 changed files
with
692 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, built with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
|
||
.idea/ | ||
|
||
# Dependency directories (remove the comment below to include it) | ||
/vendor/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
## Insolar License version 1.0 | ||
|
||
https://github.com/insolar/insolar/blob/master/LICENSE.md | ||
|
||
### Acceptance | ||
|
||
In order to get any license under these terms, you must agree to them as both strict obligations and conditions | ||
to all your licenses. | ||
|
||
### Copyright License | ||
|
||
The licensor grants you a copyright license for the software to do everything you might do with the software | ||
that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only | ||
make changes or new works based on the software according to Changes and New Works License, and you may only | ||
use the software as described in Limitations. | ||
|
||
### Changes and New Works License | ||
|
||
The licensor grants you an additional copyright license to make changes and new works based on the software | ||
for any permitted purpose. | ||
|
||
### Patent License | ||
|
||
The licensor grants you a patent license for the software that covers patent claims the licensor can license, | ||
or becomes able to license, that you would infringe by using the software as allowed in this license. | ||
|
||
### Limitations | ||
|
||
You may only use the software for your internal business purposes, and you must not use the software | ||
to provide any service, including any software-as-a-service, to anyone outside your company. | ||
|
||
This license is also intended to enable you to build applications for Insolar Mainnet, a public blockchain | ||
network developed by licensor based on the software. If you build an application that interfaces with the | ||
Insolar Mainnet, and adds substantial value to the software or Insolar Mainnet, you may provide | ||
that application as a service to others outside your company. | ||
|
||
### Notices | ||
|
||
You must ensure that any copy you make of any part of the software includes a copy of these terms or the URL | ||
for them above, as well as copies of any plain-text lines beginning with Required Notice: that the licensor | ||
provided with the software. For example: | ||
|
||
Required Notice: Copyright 2020 Insolar Network Ltd. (https://github.com/insolar/insolar/blob/master/network/LICENSE.md) | ||
|
||
### No Other Rights | ||
|
||
These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent | ||
the licensor from granting licenses to anyone else. These terms do not imply any other licenses. | ||
|
||
### Patent Challenge and Assertion | ||
|
||
Your license for the software ends immediately if your company does any of the following, or assists | ||
anyone else to do so: you make any written claim that the software infringes or contributes to infringement | ||
of any patent, or you challenge the validity of any patent licensed above, or you market or sell a product | ||
or a service that competes, directly or indirectly, with the software or any product or service of licensor | ||
based on the software. | ||
|
||
### Violations | ||
|
||
The first time you are notified in writing that you have violated any of these terms, or done anything | ||
with the software not covered by your licenses, your licenses can nonetheless continue if you come into | ||
full compliance with these terms, and take practical steps to correct past violations, within 30 days | ||
of receiving notice. Otherwise, all your licenses end immediately. | ||
|
||
### No Liability | ||
|
||
_**As far as the law allows, the software comes as is, without any warranty or condition, and the licensor | ||
will not be liable to you for any damages arising out of these terms or the use or nature of the software, | ||
under any kind of legal claim.**_ | ||
|
||
### Definitions | ||
|
||
The **licensor** is Insolar Network Ltd. | ||
|
||
The **software** is the software the licensor makes available under these terms. | ||
|
||
**You** refers to the individual or entity agreeing to these terms. | ||
|
||
**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, | ||
plus all organizations that have control over, are under the control of, or are under common control | ||
with that organization. **Control** means ownership of substantially all the assets of an entity, | ||
or the power to direct its management and policies by vote, contract, or otherwise. | ||
Control can be direct or indirect. | ||
|
||
**Your licenses** are all the licenses granted to you for the software under these terms. | ||
|
||
**Use** means anything you do with the software requiring one of your licenses. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#### Go test2json integration to TestRail | ||
|
||
``` | ||
go get github.com/insolar/testrail-cli | ||
go install cmd/testrail-cli/testrail-cli.go | ||
``` | ||
|
||
#### Usage | ||
Every test MUST log testrail case in format | ||
```go | ||
func TestExample(t *testing.T) { | ||
t.Log("C3605 Some testcase description") | ||
... | ||
} | ||
``` | ||
|
||
```go | ||
func TestSuite(t *testing.T) { | ||
t.Run("TestExample", func(t *testing.T) { | ||
t.Log("C3605 Some testcase description"") | ||
... | ||
}) | ||
} | ||
``` | ||
If you want to skip test, you can add issue to skip description | ||
```go | ||
func TestExample3(t *testing.T) { | ||
t.Log("C3607 Some testcase description") | ||
t.Skip("https://example.net/browse/TASK-1 other description") | ||
} | ||
``` | ||
#### Run | ||
| Param key | Env key | Description | | ||
| ------------- | ------------- | --------------------------- | | ||
| --URL | TR_URL | testrail url | | ||
| --USER | TR_USER | testrail user | | ||
| --PASSWORD | TR_PASSWORD | testrail password | | ||
| --RUN_ID | TR_RUN_ID | testrail run id | | ||
| --FILE | TR_FILE | go test json file | | ||
| --SKIP-DESC | SKIP-DESC | skip description check flag | | ||
Use params | ||
``` | ||
testrail-cli --URL=https://example.testrail.com/ [email protected] --PASSWORD=${pass} --RUN_ID=57 --FILE=example_test.log | ||
``` | ||
Or env vars with TR prefix | ||
``` | ||
TR_URL=https://example.testrail.com/ [email protected] TR_PASSWORD=${pass} TR_RUN_ID=57 TR_FILE=example_test_suite.json testrail-cli | ||
``` | ||
Also you can pipe json in | ||
``` | ||
go test ./... -json | testrail-cli --URL=https://example.testrail.com/ [email protected] --PASSWORD=${pass} --RUN_ID=57 | ||
``` | ||
Or save file using tee for debug | ||
``` | ||
go test ./... -json | tee autotest.log | testrail-cli --URL=https://example.testrail.com/ [email protected] --PASSWORD=${pass} --RUN_ID=57 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
// Copyright 2020 Insolar Network Ltd. | ||
// All rights reserved. | ||
// This material is licensed under the Insolar License version 1.0, | ||
// available at https://github.com/insolar/testrail-cli/LICENSE.md. | ||
|
||
package main | ||
|
||
import ( | ||
"flag" | ||
tr "github.com/insolar/testrail-cli" | ||
"github.com/spf13/pflag" | ||
"github.com/spf13/viper" | ||
"io" | ||
"log" | ||
"os" | ||
) | ||
|
||
func main() { | ||
|
||
viper.AutomaticEnv() | ||
viper.SetEnvPrefix("TR") | ||
flag.String("URL", "", "testrail url") | ||
flag.String("USER", "", "testrail username") | ||
flag.String("PASSWORD", "", "testrail password/token") | ||
flag.String("FILE", "", "go test json file") | ||
flag.Int("RUN_ID", 0, "testrail run id") | ||
flag.Bool("SKIP-DESC", false, "skip description check") | ||
pflag.CommandLine.AddGoFlagSet(flag.CommandLine) | ||
pflag.Parse() | ||
viper.BindPFlags(pflag.CommandLine) | ||
|
||
url := viper.GetString("URL") | ||
user := viper.GetString("USER") | ||
pass := viper.GetString("PASSWORD") | ||
runID := viper.GetInt("RUN_ID") | ||
file := viper.GetString("FILE") | ||
skipDesc := viper.GetBool("SKIP-DESC") | ||
|
||
if url == "" { | ||
log.Fatal("provide TestRail url") | ||
} | ||
if runID == 0 { | ||
log.Fatal("provide run id, ex.: --RUN_ID=54, or env TR_RUN_ID=54") | ||
} | ||
if user == "" { | ||
log.Fatal("provide user for TestRail authentication") | ||
} | ||
if pass == "" { | ||
log.Fatal("provide password/token for TestRail authentication") | ||
} | ||
|
||
var stream io.Reader | ||
if file != "" { | ||
f, err := os.Open(file) | ||
if err != nil { | ||
log.Fatal(err) | ||
} | ||
//defer f.Close() | ||
stream = f | ||
} else { | ||
stream = os.Stdin | ||
} | ||
events := tr.ReadFile(stream) | ||
|
||
t := tr.NewTestRail(url, user, pass) | ||
run := t.GetRun(runID) | ||
casesWithDescs := t.GetCasesWithDescs(run.ProjectID, run.SuiteID) | ||
// update all cases with N/A status, we store all autotests in ONE run, so in case | ||
// someone delete particular case implementation status must be updated to N/A | ||
untested := t.NAResults(casesWithDescs) | ||
t.UpdateRunForCases(runID, untested) | ||
|
||
testEventsBatch := t.GroupEventsByTest(events) | ||
tObjects := t.EventsToTestObjects(testEventsBatch) | ||
filteredObjects := tr.FilterTestObjects(tObjects, casesWithDescs, skipDesc) | ||
tr.LogInvalidTests(filteredObjects) | ||
|
||
sendableResults := t.TestObjectsToSendableResultsForCase(filteredObjects.Valid) | ||
if sendableResults != nil { | ||
t.UpdateRunForCases(runID, sendableResults) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
{"Time":"2020-05-22T15:00:50.396397+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample"} | ||
{"Time":"2020-05-22T15:00:50.396686+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Output":"=== RUN TestExample\n"} | ||
{"Time":"2020-05-22T15:00:50.396705+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Output":"=== PAUSE TestExample\n"} | ||
{"Time":"2020-05-22T15:00:50.396709+03:00","Action":"pause","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample"} | ||
{"Time":"2020-05-22T15:00:50.396716+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2"} | ||
{"Time":"2020-05-22T15:00:50.396721+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Output":"=== RUN TestExample2\n"} | ||
{"Time":"2020-05-22T15:00:50.396725+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Output":"=== PAUSE TestExample2\n"} | ||
{"Time":"2020-05-22T15:00:50.396728+03:00","Action":"pause","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2"} | ||
{"Time":"2020-05-22T15:00:50.396733+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3"} | ||
{"Time":"2020-05-22T15:00:50.396736+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3","Output":"=== RUN TestExample3\n"} | ||
{"Time":"2020-05-22T15:00:50.901681+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3","Output":" TestExample3: example_test.go:28: C3607 Skip test\n"} | ||
{"Time":"2020-05-22T15:00:50.901733+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3","Output":" TestExample3: example_test.go:29: sdfs\n"} | ||
{"Time":"2020-05-22T15:00:50.90177+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3","Output":"--- SKIP: TestExample3 (0.51s)\n"} | ||
{"Time":"2020-05-22T15:00:50.901779+03:00","Action":"skip","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample3","Elapsed":0.51} | ||
{"Time":"2020-05-22T15:00:50.901799+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members"} | ||
{"Time":"2020-05-22T15:00:50.901803+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members","Output":"=== RUN TestMGRGroupCreateWith2Members\n"} | ||
{"Time":"2020-05-22T15:00:50.901818+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members","Output":"=== PAUSE TestMGRGroupCreateWith2Members\n"} | ||
{"Time":"2020-05-22T15:00:50.901824+03:00","Action":"pause","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members"} | ||
{"Time":"2020-05-22T15:00:50.901829+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence"} | ||
{"Time":"2020-05-22T15:00:50.901834+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence","Output":"=== RUN TestMGRGroupCreateCheckEmptySequence\n"} | ||
{"Time":"2020-05-22T15:00:50.901844+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence","Output":"=== PAUSE TestMGRGroupCreateCheckEmptySequence\n"} | ||
{"Time":"2020-05-22T15:00:50.901849+03:00","Action":"pause","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence"} | ||
{"Time":"2020-05-22T15:00:50.901859+03:00","Action":"cont","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample"} | ||
{"Time":"2020-05-22T15:00:50.901865+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Output":"=== CONT TestExample\n"} | ||
{"Time":"2020-05-22T15:00:50.901877+03:00","Action":"cont","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence"} | ||
{"Time":"2020-05-22T15:00:50.901882+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence","Output":"=== CONT TestMGRGroupCreateCheckEmptySequence\n"} | ||
{"Time":"2020-05-22T15:00:50.901892+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=200"} | ||
{"Time":"2020-05-22T15:00:50.901898+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=200","Output":"=== RUN TestMGRGroupCreateCheckEmptySequence/groupGoal=200\n"} | ||
{"Time":"2020-05-22T15:00:50.901953+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=200","Output":" TestMGRGroupCreateCheckEmptySequence/groupGoal=200: example_test.go:47: C3702 Create group of 3 members with groupGoal=200 and check empty sequence\n"} | ||
{"Time":"2020-05-22T15:00:50.901986+03:00","Action":"cont","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members"} | ||
{"Time":"2020-05-22T15:00:50.901995+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members","Output":"=== CONT TestMGRGroupCreateWith2Members\n"} | ||
{"Time":"2020-05-22T15:00:50.902003+03:00","Action":"cont","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2"} | ||
{"Time":"2020-05-22T15:00:50.902009+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Output":"=== CONT TestExample2\n"} | ||
{"Time":"2020-05-22T15:00:50.902018+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=300"} | ||
{"Time":"2020-05-22T15:00:50.902024+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=300","Output":"=== RUN TestMGRGroupCreateCheckEmptySequence/groupGoal=300\n"} | ||
{"Time":"2020-05-22T15:00:50.90203+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=300","Output":" TestMGRGroupCreateCheckEmptySequence/groupGoal=300: example_test.go:47: C3704 Create group of 3 members with groupGoal=300 and check empty sequence\n"} | ||
{"Time":"2020-05-22T15:00:50.902062+03:00","Action":"run","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400"} | ||
{"Time":"2020-05-22T15:00:50.902075+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400","Output":"=== RUN TestMGRGroupCreateCheckEmptySequence/groupGoal=400\n"} | ||
{"Time":"2020-05-22T15:00:50.902084+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400","Output":" TestMGRGroupCreateCheckEmptySequence/groupGoal=400: example_test.go:47: C3696 Create group of 3 members with groupGoal=400 and check empty sequence\n"} | ||
{"Time":"2020-05-22T15:00:50.902114+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence","Output":"--- PASS: TestMGRGroupCreateCheckEmptySequence (0.00s)\n"} | ||
{"Time":"2020-05-22T15:00:50.902133+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=200","Output":" --- PASS: TestMGRGroupCreateCheckEmptySequence/groupGoal=200 (0.00s)\n"} | ||
{"Time":"2020-05-22T15:00:50.902138+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=200","Elapsed":0} | ||
{"Time":"2020-05-22T15:00:50.902144+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=300","Output":" --- PASS: TestMGRGroupCreateCheckEmptySequence/groupGoal=300 (0.00s)\n"} | ||
{"Time":"2020-05-22T15:00:50.90217+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=300","Elapsed":0} | ||
{"Time":"2020-05-22T15:00:50.90218+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400","Output":" --- PASS: TestMGRGroupCreateCheckEmptySequence/groupGoal=400 (0.00s)\n"} | ||
{"Time":"2020-05-22T15:00:51.005646+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400","Output":" TestExample: example_test.go:16: C9999 Pass test\n"} | ||
{"Time":"2020-05-22T15:00:51.005689+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence/groupGoal=400","Elapsed":0} | ||
{"Time":"2020-05-22T15:00:51.005697+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateCheckEmptySequence","Elapsed":0} | ||
{"Time":"2020-05-22T15:00:51.005701+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Output":"--- PASS: TestExample (0.10s)\n"} | ||
{"Time":"2020-05-22T15:00:51.206031+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Output":" TestExample2: example_test.go:22: C3606 Fail testsdf\n"} | ||
{"Time":"2020-05-22T15:00:51.206056+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample","Elapsed":0.1} | ||
{"Time":"2020-05-22T15:00:51.206063+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Output":"--- FAIL: TestExample2 (0.30s)\n"} | ||
{"Time":"2020-05-22T15:00:51.90453+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Output":" TestMGRGroupCreateWith2Members: example_test.go:35: C3703 Error creating group of 2 members\n"} | ||
{"Time":"2020-05-22T15:00:51.904564+03:00","Action":"fail","Package":"github.com/insolar/testrail-cli/package1","Test":"TestExample2","Elapsed":0.3} | ||
{"Time":"2020-05-22T15:00:51.904574+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members","Output":"--- PASS: TestMGRGroupCreateWith2Members (1.00s)\n"} | ||
{"Time":"2020-05-22T15:00:51.904582+03:00","Action":"pass","Package":"github.com/insolar/testrail-cli/package1","Test":"TestMGRGroupCreateWith2Members","Elapsed":1} | ||
{"Time":"2020-05-22T15:00:51.904587+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Output":"FAIL\n"} | ||
{"Time":"2020-05-22T15:00:51.905226+03:00","Action":"output","Package":"github.com/insolar/testrail-cli/package1","Output":"FAIL\tgithub.com/insolar/testrail-cli/package1\t1.750s\n"} | ||
{"Time":"2020-05-22T15:00:51.905257+03:00","Action":"fail","Package":"github.com/insolar/testrail-cli/package1","Elapsed":1.75} |
Oops, something went wrong.