Skip to content

Commit

Permalink
Merge pull request #18 from mirecl/feature/parameters
Browse files Browse the repository at this point in the history
Add parametes for test body
  • Loading branch information
koodeex authored Jul 28, 2022
2 parents 623060b + 7477e33 commit 8f4ddb6
Show file tree
Hide file tree
Showing 12 changed files with 98 additions and 17 deletions.
2 changes: 2 additions & 0 deletions examples/provider_demo/sample_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"fmt"
"testing"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/ozontech/allure-go/pkg/framework/runner"
)
Expand All @@ -18,6 +19,7 @@ func TestSampleDemo(t *testing.T) {

t.Title("Some Sample test")
t.Description("allure-go allows you to use allure without suites")
t.WithParameters(allure.NewParameter("host", "localhost"))

t.WithNewStep("Some nested step", func(ctx provider.StepCtx) {
ctx.WithNewStep("Some inner step 1", func(ctx provider.StepCtx) {
Expand Down
1 change: 1 addition & 0 deletions pkg/allure/result.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type Result struct {
TestCaseID string `json:"testCaseId,omitempty"` // ID of the test case (based on the hash of the full call)
Description string `json:"description,omitempty"` // Test description
Attachments []*Attachment `json:"attachments,omitempty"` // Test case attachments
Parameters []Parameter `json:"parameters,omitempty"` // Test case parameters
Labels []Label `json:"labels,omitempty"` // Array of labels
Links []Link `json:"links,omitempty"` // Array of references
Steps []*Step `json:"steps,omitempty"` // Array of steps
Expand Down
3 changes: 1 addition & 2 deletions pkg/framework/core/allure_manager/manager/attachment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/core/constants"
"github.com/stretchr/testify/require"
)

type execMockAttach struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockDescription struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/core/constants"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockExecM struct {
Expand Down
3 changes: 1 addition & 2 deletions pkg/framework/core/allure_manager/manager/labels_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockLabels struct {
Expand Down
9 changes: 4 additions & 5 deletions pkg/framework/core/allure_manager/manager/links_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockLinks struct {
Expand Down Expand Up @@ -45,7 +44,7 @@ func (m *testMetaMockLinks) GetAfterEach() func(t provider.T) {
}

func TestAllureManager_Link(t *testing.T) {
manager := allureManager{testMeta: &testMetaMockLabels{result: &allure.Result{}}}
manager := allureManager{testMeta: &testMetaMockLinks{result: &allure.Result{}}}
manager.Link(allure.NewLink("Name", allure.LINK, "http://test.com"))
require.Len(t, manager.GetResult().Links, 1)
require.Equal(t, "Name", manager.GetResult().Links[0].Name)
Expand All @@ -55,15 +54,15 @@ func TestAllureManager_Link(t *testing.T) {
}

func TestAllureManager_SetTestCase(t *testing.T) {
manager := allureManager{testMeta: &testMetaMockLabels{result: &allure.Result{}}}
manager := allureManager{testMeta: &testMetaMockLinks{result: &allure.Result{}}}
manager.SetTestCase("TestCase")
require.Len(t, manager.GetResult().Links, 1)
require.Equal(t, "TestCase[TestCase]", manager.GetResult().Links[0].Name)
require.Equal(t, string(allure.TESTCASE), manager.GetResult().Links[0].Type)
}

func TestAllureManager_SetIssue(t *testing.T) {
manager := allureManager{testMeta: &testMetaMockLabels{result: &allure.Result{}}}
manager := allureManager{testMeta: &testMetaMockLinks{result: &allure.Result{}}}
manager.SetIssue("Issue")
require.NotEmpty(t, manager.GetResult().Links)
require.Len(t, manager.GetResult().Links, 1)
Expand Down
17 changes: 17 additions & 0 deletions pkg/framework/core/allure_manager/manager/parameter.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package manager

import "github.com/ozontech/allure-go/pkg/allure"

// WithParameters adds parameters to report in case of current execution context
func (a *allureManager) WithParameters(params ...allure.Parameter) {
a.safely(func(result *allure.Result) {
result.Parameters = append(result.Parameters, params...)
})
}

// WithNewParameters adds parameters to report in case of current execution context
func (a *allureManager) WithNewParameters(kv ...interface{}) {
a.safely(func(result *allure.Result) {
result.Parameters = append(result.Parameters, allure.NewParameters(kv...)...)
})
}
62 changes: 62 additions & 0 deletions pkg/framework/core/allure_manager/manager/parameter_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package manager

import (
"testing"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockParameter struct {
result *allure.Result
container *allure.Container
be func(t provider.T)
ae func(t provider.T)
}

func (m *testMetaMockParameter) GetResult() *allure.Result {
return m.result
}

func (m *testMetaMockParameter) SetResult(result *allure.Result) {
m.result = result
}

func (m *testMetaMockParameter) GetContainer() *allure.Container {
return m.container
}

func (m *testMetaMockParameter) SetBeforeEach(hook func(t provider.T)) {
m.be = hook
}

func (m *testMetaMockParameter) GetBeforeEach() func(t provider.T) {
return m.be
}

func (m *testMetaMockParameter) SetAfterEach(hook func(t provider.T)) {
m.ae = hook
}

func (m *testMetaMockParameter) GetAfterEach() func(t provider.T) {
return m.ae
}

func TestAllureManager_Parameter(t *testing.T) {
manager := allureManager{testMeta: &testMetaMockParameter{result: &allure.Result{}}}
manager.WithParameters(allure.NewParameter("host", "localhost"))
require.Len(t, manager.GetResult().Parameters, 1)
require.Equal(t, "host", manager.GetResult().Parameters[0].Name)
require.Equal(t, "localhost", manager.GetResult().Parameters[0].Value)
}

func TestAllureManager_NewParameter(t *testing.T) {
manager := allureManager{testMeta: &testMetaMockParameter{result: &allure.Result{}}}
manager.WithNewParameters("host", "localhost", "os", "linux")
require.Len(t, manager.GetResult().Parameters, 2)
require.Equal(t, "host", manager.GetResult().Parameters[0].Name)
require.Equal(t, "localhost", manager.GetResult().Parameters[0].Value)
require.Equal(t, "os", manager.GetResult().Parameters[1].Name)
require.Equal(t, "linux", manager.GetResult().Parameters[1].Value)
}
3 changes: 1 addition & 2 deletions pkg/framework/core/allure_manager/manager/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ import (
"strings"
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockProvider struct {
Expand Down
3 changes: 1 addition & 2 deletions pkg/framework/core/allure_manager/manager/steps_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package manager
import (
"testing"

"github.com/stretchr/testify/require"

"github.com/ozontech/allure-go/pkg/allure"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/stretchr/testify/require"
)

type testMetaMockSteps struct {
Expand Down
6 changes: 6 additions & 0 deletions pkg/framework/provider/allure.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,19 @@ type Attachments interface {
WithNewAttachment(name string, mimeType allure.MimeType, content []byte)
}

type Parameters interface {
WithParameters(params ...allure.Parameter)
WithNewParameters(kv ...interface{})
}

type AllureForward interface {
DescriptionLabels
SuiteLabels
Links
DescriptionFields
AllureSteps
Attachments
Parameters
}

type AllureForwardFull interface {
Expand Down

0 comments on commit 8f4ddb6

Please sign in to comment.