Conversation
|
This creates output that looks like <?xml version="1.0" encoding="UTF-8"?>
<testExecutions version="1">
<file path="github.com/group/project/cmd/server/repository/repository_test.go">
<testCase name="TestGetPolicy_ValidPolicyName" duration="0">
<failure message="error">
<![CDATA[ repository_test.go:67: Expected to find policy schema for tcp-proxy
repository_test.go:71: Expected to find policy schema for tcp-proxy to match test data
repository_test.go:77: Expected to find policy schema for tcp-proxy
repository_test.go:81: Expected to find policy schema for tcp-proxy to match test data]]>
</failure>
</testCase>
</file>
<file path="github.com/group/project/cmd/server/repository/repository_test.go">
<testCase name="TestGetPolicy_InvalidPolicyName" duration="0" />
</file>
<file path="github.com/group/project/cmd/server/repository/repository_test.go">
<testCase name="TestGetPolicy_MissingArtifact" duration="0" />
</file>
</testExecutions> |
|
Thanks, I'll have a look soon-ish ... |
tebeka
left a comment
There was a problem hiding this comment.
Thanks for contributing. See my comments in the code. The other main issue is the missing tests. Please write regression tests (see _data directory)
| "strings" | ||
| ) | ||
|
|
||
| func fileFileForTest(suite *Suite, test *Test, pkg *build.Package, strip string) string { |
There was a problem hiding this comment.
Not sure I like the name fileFile prefix. Hard to understand what this does from the name, maybe a document?
| continue | ||
| } | ||
| contents = string(body) | ||
| testFileContents[testFilePath] = contents |
There was a problem hiding this comment.
I don't see the test file contents in the XML example, why do we need it?
| for _, testFile := range pkg.TestGoFiles { | ||
| testFilePath = filepath.Join(pkg.Dir, testFile) | ||
| if contents, ok = testFileContents[testFilePath]; !ok { | ||
| if body, err = ioutil.ReadFile(testFilePath); err != nil { |
There was a problem hiding this comment.
Don't ignore errors, unless there's a good reason
|
|
||
| func fileFileForTest(suite *Suite, test *Test, pkg *build.Package, strip string) string { | ||
| var ( | ||
| testFileContents = make(map[string]string) |
There was a problem hiding this comment.
We usually don't declare variables in advance, we use := instead
| } | ||
|
|
||
| func secondsToMilliseconds(seconds string) string { | ||
| t, err := time.ParseDuration(seconds + "s") |
There was a problem hiding this comment.
If you already know it's in seconds, why not just do the math directly?
| flag.BoolVar(&args.bambooOut, "bamboo", false, | ||
| "xml compatible with Atlassian's Bamboo") | ||
| flag.BoolVar(&args.xunitnetOut, "xunitnet", false, "xml compatible with xunit.net") | ||
| flag.BoolVar(&args.sonarGTDOut, "sonar", false, "xml compatible with Sonar Generic Test Data") |
There was a problem hiding this comment.
Need to add a check in main that it's no colliding with other formatting flags.
|
Will take a look at these issue this week. |
This adds the ability to output in the Sonar Qube Generic Test Data format
https://docs.sonarqube.org/display/SONAR/Generic+Test+Data
I created a new template for the sonar output, and added a template function that allows you to get the test file a test exists in as required by the Generic Test Data format