【问题标题】:Rspec, capybara, rake - can't create HTML reportRspec、capybara、rake - 无法创建 HTML 报告
【发布时间】:2014-10-14 21:44:04
【问题描述】:

我想对我的网页进行冒烟测试。

测试工作正确。

每次测试后我都有 html 报告,但前提是单独开始测试(每个测试都有差异通过和登录) .rspec 文件中的 html 报告

--format html

--out rspec_results.html

我创建了启动所有测试的 Rake 任务以及自动获取密码。

耙任务代码:

namespace :smoke do

  users = [

    {login: "login",     pass: "pass", tag: "role1"    },
    {login: "login",     pass: "pass", tag: "role2"    },
    {login: "login",     pass: "pass", tag: "role3"    },
    {login: "login",     pass: "pass", tag: "role4"    },
    {login: "login",     pass: "pass", tag: "role5"    }, 
    {login: "login",     pass: "pass", tag: "role6"    },
    {login: "login",     pass: "pass", tag: "role7"    },
    {login: "login",     pass: "pass", tag: "role8"    } 


  ] 

  users.each do |user|

    desc "smoke test for admin"

    task "#{user[:tag].to_sym}" => :environment do
        task('spec').clear

      ENV['LOGIN']    = user[:login]
      ENV['PASSWORD'] = user[:pass]

      RSpec::Core::RakeTask.new(:spec) do |t|
        t.pattern    = './spec/smoke/**/*'
        t.rspec_opts = "-t #{user[:tag]}" 
        t.fail_on_error = false
      end 
      Rake::Task["spec"].execute 
    end
  end

  desc "smoke test for all users"
  task all: :environment do
    task('spec').clear

    Rake::Task["smoke:role1"].invoke
    Rake::Task["smoke:role2"].invoke
    Rake::Task["smoke:role3"].invoke
    Rake::Task["smoke:role4"].invoke
    Rake::Task["smoke:role5"].invoke
    Rake::Task["smoke:role6"].invoke
    Rake::Task["smoke:role7"].invoke
    Rake::Task["smoke:role8"].invoke

  end

我尝试添加这个t.rspec_opts = '--format html --out reports/rspec_results.html'

如果我选择一个角色

例子:

rake smoke:role1(角色1开始测试)

之后,继续测试另一个角色,但使用 pass 和从角色 1 登录,分别所有另一个测试失败。在报告中我已经进行了所有测试,但只有第一步正确通过了另一个失败。

我如何为我的 rake 任务进行报告,如果有人知道如果测试步骤失败,如何将屏幕(水豚)添加到此报告中。

问候。

【问题讨论】:

    标签: ruby rspec rake capybara easyhtmlreport


    【解决方案1】:

    你是否尝试改变:

    RSpec::Core::RakeTask.new(:spec) do |t|
      t.pattern       = './spec/smoke/**/*'
      t.rspec_opts    = "-t #{user[:tag]}" 
      t.fail_on_error = false
    end
    

    到:

    RSpec::Core::RakeTask.new(:spec) do |t|
      t.pattern       = './spec/smoke/**/*'
      t.rspec_opts    = "-t #{user[:tag]} --format html --out reports/rspec_results_#{user[:login]}.html" 
      t.fail_on_error = false
    end
    

    它将为每个用户创建一个报告:rspec_results_admin.html for rake smoke:admin 等。

    【讨论】:

    • 对不起,这种方式不正确。仅保存以报告最后一次测试
    • 第二个工作正常。但是如果我需要一个文件中的所有报告怎么办?
    • @user3625978, "reports/rspec_results_#{user[:login]}.html" 为每个用户创建单独的报告。之后,您可以将 rspec_results_admin.html、rspec_results_user.html 写入一个报告文件
    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多