在我的一个项目中,我需要与几个后端系统协作.其中一些有些缺乏文档,部分因此我有一些测试代码与一些测试服务器交互只是为了看到一切按预期工作.但是,访问这些服务器的速度非常慢,因此我不希望每次运行测试套件时都运行这些测试.
我的问题是如何处理你想跳过某些测试的情况.目前我使用环境变量'BACKEND_TEST'和条件语句来检查是否为我想跳过的每个测试设置了变量.但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行.
必须与测试服务器交互的测试并不多,因为我在其他情况下使用flexmock.但是,你不能嘲笑自己远离现实.
从这个问题的标题可以看出,我正在使用Test :: Unit.此外,如果它有任何区别,该项目是一个Rails项目.
例如,当运行这些测试时,我想确保test_fizz始终先运行.
require 'test/unit'
class FooTest < Test::Unit::TestCase
def test_fizz
puts "Running fizz"
assert true
end
def test_bar
puts "Running bar"
assert true
end
end
Run Code Online (Sandbox Code Playgroud)
更新:我为什么要这样做?我的想法是某些测试的早期失败(那些测试更简单,更基本的方法)将使得更容易追踪系统中的问题.例如,bar取决于fizz正确工作的成功与否.如果fizz坏了,我想立即知道,因为没有必要担心bar,这也会失败,但测试结果的输出要复杂得多.
我打开irb并输入:
require 'test/unit'
Run Code Online (Sandbox Code Playgroud)
但是当我使用这个assert_equal方法时,我得到了以下错误:NoMethodError: undefined method 'assert_equal' for main:Object.为什么即使在要求'测试/单位'之后也会发生这种情况?
是否有类似于RSpec for test :: Unit测试中的shared_examples的插件/扩展名?
我正在使用Rails 4.0.0.beta1.我添加了两个目录:app/services和test/services.
我还添加了这个代码,基于阅读railties的testing.rake:
namespace :test do
Rake::TestTask.new(services: "test:prepare") do |t|
t.libs << "test"
t.pattern = 'test/services/**/*_test.rb'
end
end
Run Code Online (Sandbox Code Playgroud)
我发现rake test:services运行测试test/services; 但是,rake test不运行那些测试.看起来应该如此 ; 这是代码:
Rake::TestTask.new(:all) do |t|
t.libs << "test"
t.pattern = "test/**/*_test.rb"
end
Run Code Online (Sandbox Code Playgroud)
我忽略了什么吗?
我已经尝试了几种不同的方法来定义模拟函数,并且我的所有尝试都失败了.当我尝试将其定义如下:
jest.mock('../src/data/server', ()=> ({server: {report: jest.fn()}}));
expect(server.report.mock).toBeCalledWith(id, data, () => {...}, () => {...});
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
expect(jest.fn())[.not].toBeCalledWith()
jest.fn() value must be a mock function or spy.
Received: undefined
Run Code Online (Sandbox Code Playgroud)
如果我将模拟定义为:
var spy = jest.mock('../src/data/server', ()=> ({server: {report: jest.fn()}}));
expect(spy).toBeCalledWith(id, data, () => {...}, () => {...});
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
expect(jest.fn())[.not].toBeCalledWith()
jest.fn() value must be a mock function or spy.
Received:
object: {"addMatchers": [Function anonymous], "autoMockOff": [Function anonymous], "autoMockOn": [Function anonymous], "clearAllMocks": [Function anonymous], "clearAllTimers": [Function anonymous], "deepUnmock": [Function anonymous], "disableAutomock": [Function anonymous], "doMock": [Function …Run Code Online (Sandbox Code Playgroud) 在Ruby的unit :: test框架中运行测试时,是否有一种非常简单的方法可以从命令行指定只应运行一个测试(即指定测试类和测试成员变量)?如果没有,是否有另一个具有此功能的框架?
在我的Rails 3应用程序中,我一直在使用jQuery的attr()方法来执行以下操作:
$('#application_dust_type_id').attr('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)
我会使用Test/Unit,capybara和capybara-webkit来测试这个:
assert page.has_selector? 'select[id=application_dust_type_id][disabled=disabled]'
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试切换到使用prop方法,因为jQuery建议:
$('#application_dust_type_id').prop('disabled', true)
Run Code Online (Sandbox Code Playgroud)
但是现在上面的断言失败了,即使javascript在浏览器中仍然有效.
如何使用capybara基于元素的属性(而不是属性)进行断言?
我在Ubuntu 12.04的rails 3.2.11项目上运行了guard-spork.
我从railstutorial.org获得了配置.
Spork开始,然后后卫说它找不到spork开始,等待30秒,然后60秒,然后工作.
它可以工作,但每次都会出错.只是想知道我做错了什么.
如何删除Test :: Unit的钩子?
错误信息:
16:31:58 - INFO - Starting Spork for RSpec, Test::Unit
Using RSpec
Preloading Rails environment
Couldn't find a supported test framework that begins with 'testunit'
Supported test frameworks:
( ) Cucumber
(*) RSpec
Legend: ( ) - not detected in project (*) - detected
Loading Spork.prefork block...
Rack::File headers parameter replaces cache_control after Rack 1.5.
Spork is ready and listening on 8989!
16:32:28 - ERROR - Could not start …Run Code Online (Sandbox Code Playgroud) 我使用Ruby 1.9.2(ruby -v产量:ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-linux]),我试图让它工作:
require 'test/unit'
class TestStartup < Test::Unit::TestCase
def self.startup
puts "startup"
end
def test1
puts "in test1"
end
end
Run Code Online (Sandbox Code Playgroud)
当我跑的时候,我明白了
Loaded suite test_startup
Started
in test1
.
Finished in 0.000395 seconds.
1 tests, 0 assertions, 0 failures, 0 errors, 0 skips
Run Code Online (Sandbox Code Playgroud)
我很难找到关于这个功能的文档,除了SO上的零散帖子等.
是的,我想使用此功能而不是设置.
TIA