如何将额外信息附加到测试规范?

时间:2017-04-19 21:46:27

标签: jasmine protractor

我有几个量角器测试脚本。我的目标是根据脚本和结果生成一些报告。

我想在每个测试中附加一些其他信息,例如ID或参考号。有没有办法将其添加到每个it规范中?我不需要茉莉花或量角器来处理这些信息,最多只是将它包含在测试结果输出文件中。

我想要这样的事情:

describe('Module A Test Suite', function () {
    // note parameter with extra info
    it('This is a test', {testId: 123, release: "v2.0.5"}, function () {

        //note parameter with extra info
        expect({description: "Verify link is shown", priority: 2}, element(by.id('Home')).isPresent()).toBe(true);

        // more tests and expect's here
    }
}

在输出xml中有一些带有额外信息的部分。

可能导致这样的事情:

<testsuites>
    <testsuite name="chrome.Module A Test Suite" timestamp="2016-11-22T11:22:45" hostname="localhost" time="77.753" errors="0" tests="8" skipped="0" disabled="0" failures="3">
        <extras testId="123" release="v2.0.5" />
        <testcase classname="chrome.Module A Test Suite" name="This is a test" >
            <extras description="Verify link is shown" priority="2"/>
        </testcase>
    </testsuite>
</testsuites>

如果这不能作为代码本身添加,有没有办法可以将其添加为注释或其他可以轻松解析的元素?优选使用现有工具或茉莉/量角器功能?

1 个答案:

答案 0 :(得分:3)

关于it电话(测试规范)的额外信息:

Jasmine使用对象result作为测试规范的一部分,并在调用记者的resultspecStarted时将其用作specDone参数。

result对象是it函数返回的对象的属性。

关于describe电话(测试套件)的额外信息:

Jasmine还使用属于测试套件的对象result,并在调用记者的resultsuiteStarted时将其作为suiteDone参数传递。

可以通过result所用函数内的this访问测试套件的属性describe

因此,要为其分配额外数据,我们可以执行类似

的操作
 describe('Module A Test Suite', function () {
    // the following line attaches information to the test suite
    this.result.extra_suite_data = {suiteInfo: "extra info"};

    // note parameter with extra info
    it('This is a test', function () {

        //note parameter with extra info
        expect(element(by.id('Home')).isPresent()).toBe(true);

    })
    .result.extra_spec_data = {testId: 123, release: "v2.0.5"};
    // the line above adds `extra_data` to the `result` property 
    // of the object returned by `it`. Attaching the data to the
    // test spec
});

expect语句添加额外信息稍微复杂一些,因为expect函数返回的对象不会传递给报告者,也不会添加到testSpec.result.passedExpectations也不会添加到testSpec.result.failedExpectations ... <!--Uncomment the below lines in order to use capability FOOBAR--!> <!--<FOOBAR someAttribute="someValue"> <ChildElement1/> <ChildElement2/> </FOOBAR>--> ... 数组。