当前位置: 首页 > 知识库问答 >
问题:

量角器Jasmine Reporter+BDD+Azure DevOps

亢雅懿
2023-03-14

我想用BDD风格编写Jasmine End2结束测试。从我所学到的,这意味着,我有四个方面:

  • 功能
  • 方案
  • 刺激或事件
  • 确保的结果

从我幼稚的观点来看,我将为“个别细节”特性创建一个测试,如下所示:

// Feature
describe('Showing Individual Details', () => {
  let individualDetailsPage: IndividualDetailsPage;

  beforeEach(() => {
    individualDetailsPage = new IndividualDetailsPage();
  });

  // Scenario - New Individual
  describe('Given a new Individual', () => {
    beforeEach(async () => {
      await individualDetailsPage.navigateToDetails('-1');
    });

    // Incoming Event
    describe('When the Details are loaded', () => {
      // Ensure outcome
      it('Then all Controls are empty', async () => {
        expect(individualDetailsPage.firstNameInput.text).toBe('');
        expect(individualDetailsPage.lastNameInput.text).toBe('');
        expect(individualDetailsPage.birthdateInput.text).toBe('');
      });

      // Ensure outcome
      it('Then the save button is disabled', () => {
        expect(individualDetailsPage.saveButton.isEnabled).toBe(false);
      });
    });
  });
});

  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    var jasmineReporters = require('jasmine-reporters');
    var junitReporter = new jasmineReporters.JUnitXmlReporter({
      savePath: 'testresults',
      filePrefix: 'e2e-tests',
      consolidateAll: true
    });

    jasmine.getEnv().addReporter(junitReporter);
  }
 <testsuite name="Showing Individual Details" timestamp="2019-02-04T18:23:33" hostname="localhost" time="2.035" errors="0" tests="0" skipped="0" disabled="0" failures="0">
 </testsuite>
 <testsuite name="Showing Individual Details.Given a new Individual" timestamp="2019-02-04T18:23:33" hostname="localhost" time="2.033" errors="0" tests="0" skipped="0" disabled="0" failures="0">
 </testsuite>
 <testsuite name="Showing Individual Details.Given a new Individual.When the Details are loaded" timestamp="2019-02-04T18:23:33" hostname="localhost" time="2.033" errors="0" tests="2" skipped="0" disabled="0" failures="0">
  <testcase classname="Showing Individual Details.Given a new Individual.When the Details are loaded" name="Then all Controls are empty" time="1.106" />
  <testcase classname="Showing Individual Details.Given a new Individual.When the Details are loaded" name="Then the save button is disabled" time="0.927" />
 </testsuite>

因此,是我的代码完全错误,还是实际上是记者?如果是这种情况,是否有其他选择,或者我是否需要以某种方式“扁平化”XML?

共有1个答案

孟永望
2023-03-14

我同意上面的评论,创建自己的记者听起来像是一种方式。您可以任意设置内容的格式。

我最近在这里回应了另一个关于茉莉花记者的问题。我将测试结果重新格式化为一个JSON对象,并在每次测试完成后将其存储在amazons dynamoDB中。

还有什么问题请告诉我。

 类似资料:
  • 我维护了一个复杂的Angular(1.5.x)应用程序,该应用程序正在使用Protractor(2.5.x)进行E2E测试。我在使用这种方法时遇到了一个问题,主要表现在测试似乎不可靠。在一个拉请求中运行良好的测试在另一个请求中失败。这涉及简单的定位器,例如by.linkTest(…)。我调试了失败的测试,应用程序位于正确的页面上,链接存在并且可以访问。 还有人遇到过这些一致性问题吗?知道原因或解决

  • 问题内容: 我正在使用Selenium Protractor,希望从以下列表中选择所有元素,但其中一个包含文本“ Cat”,然后对其余元素执行一些操作。 是否有cssContainingText(或其他一些选择器)提供的选择器,我可以在其中提供条件以选择除包含文本“ Cat”的元素以外的所有元素? 问题答案: 您可以使用以下定位器策略创建一个 列表, 选择除包含文本 Cat 的元素以外的所有其他元

  • 问题内容: 我试图在量角器上设置一个全局变量,以在所有描述块中使用。 但这返回了以下错误: 我也看了这个问题:量角器angularJS全局变量 所以我试图以这种方式在conf.js中设置变量glob: 仍然有相同的错误。 如何在量角器测试中正确添加全局变量? 问题答案: 可以借助属性从量角器配置文件设置全局变量: 您可以使用规范中访问它。 请参阅参考配置文件。 params对象将直接传递到Prot

  • Jasmine遵循行为驱动开发(BDD)框架。 在学习Jasmine的工作原理之前,让我们知道什么是BDD框架。 以下流程图描述了BDD框架的不同阶段。 Step 1 − Start 在这个阶段,我们将为Jasmine应用程序准备好环境。 Step 2 − Write a failing test 在这一步中,我们将编写我们的第一个测试用例。 很明显,这个测试会失败,因为没有这样的文件或函数需要测

  • 问题内容: 我似乎无法使Protractor意识到Angular已加载并正在运行。当Chrome打开时,我的应用程序已完全加载到浏览器中,因此我知道Angular已加载并正常运行。 配置文件: 我只有一个要运行的测试,但由于量角器找不到Angular而失败了。 考试: 这是我得到的错误: UnknownError:JavaScript错误:未定义角度(会话信息:chrome = 30.0.1599

  • 问题内容: 我的页面上有一个按钮,当用户向下滚动时该按钮可见。因此,量角器测试给我一个错误: UnknownError:未知错误:元素在点(94,188)不可单击。 我尝试使用: 当我在量角器elementexplorer.js中对其进行测试时,此方法有效,但在我的常规测试中却无能为力。还有其他办法吗? 问题答案: 您需要等待诺言得以解决。以下示例来自一个未解决的问题 更新 :这是一个古老的问题(