标签: assertion

如何配置maven以将JUnit断言失败消息打印到控制台

我正在使用surefire maven插件来运行单元测试.我的测试类看起来像这样:

public class Test1 {
  @org.junit.Test
  public void testThatFails(){
    Assert.assertTrue("false is never true", false);
  }
}
Run Code Online (Sandbox Code Playgroud)

当测试失败时,我希望看到与AssertionError相关联的消息"false is never true",但它不会打印到控制台.相反,我被指示在surefire报告目录中挖掘并找到它(很糟糕).

Running com.example.Test1
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 5.799 sec <<< FAILURE!
Running com.example.Test2
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Running com.example.Test3
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.122 sec

Results :

Failed tests: 
testThatFails(com.example.Test1)

Tests run: 12, Failures: 1, Errors: 0, …
Run Code Online (Sandbox Code Playgroud)

junit maven assertion maven-surefire-plugin

14
推荐指数
1
解决办法
1万
查看次数

Gulp AssertionError [ERR_ASSERTION]:必须指定任务函数

这是我第一次在stackoverflow中请与我礼貌.

我在终端上使用MacOS Sierra 10.13.6,我正在尝试为AngularJS上构建的webapp演示自定义模板.我已经安装了Gulp,但是当我启动时gulp serve返回此错误而不启动本地服务器:

var gulp = require('gulp');
var args = require('yargs').argv;
var browserSync = require('browser-sync');
var config = require('./gulp.config')();
var del = require('del');
var $ = require('gulp-load-plugins')({lazy: true});

gulp.task('help', $.taskListing);
gulp.task('default', ['help']);

gulp.task('vet', function() {
    log('Analyzing source with JSHint and JSCS');

    return gulp
        .src(config.alljs)
        .pipe($.if(args.verbose, $.print()))
        .pipe($.jscs())
        .pipe($.jshint())
        .pipe($.jshint.reporter('jshint-stylish', {verbose: true}))
        .pipe($.jshint.reporter('fail'));
});

gulp.task('clean-tmp', function(done) {
    var files = config.tmp;
    clean(files, done);
});

gulp.task('clean', function(done) {
    var delconfig …
Run Code Online (Sandbox Code Playgroud)

assertion angularjs gulp

14
推荐指数
2
解决办法
5776
查看次数

xUnit 断言两个值相等,但有一定的容忍度

我正在尝试比较两个数字的精度和一些容差。

这是在 nUnit 中检查它的方式:

Assert.That(turnOver, Is.EqualTo(turnoverExpected).Within(0.00001).Percent);
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 xUnit 中做同样的事情,但这就是我想出的全部内容:

double tolerance = 0.00001;
Assert.Equal(turnOver, turnoverExpected, tolerance);
Run Code Online (Sandbox Code Playgroud)

这不会编译,因为Assert.Equal不接受第三个类型的参数double

任何人都知道在 xUnit 中执行此操作的好方法吗?

c# xunit assertion

14
推荐指数
3
解决办法
4538
查看次数

断言调试器断言失败

当assertion为false并使用Visual Studio调试器运行应用程序时,有没有办法打破调试器.早些时候,当我调试Windows应用程序时,我会得到一个异常并且调试器会中断,但现在在智能设备上,断言失败窗口显示堆栈跟踪,但我还希望看到变量值等.

c# debugging smart-device visual-studio-2008 assertion

13
推荐指数
3
解决办法
8079
查看次数

Assertion失败时如何继续执行

我正在使用Selenium RC使用Java与eclipse和TestNG框架.我有以下代码片段:

assertTrue(selenium.isTextPresent("Please enter Email ID"));
assertTrue(selenium.isTextPresent("Please enter Password"));
Run Code Online (Sandbox Code Playgroud)

第一个断言失败,执行停止.但我想继续进一步的代码片段.

java testng verify selenium-rc assertion

13
推荐指数
4
解决办法
5万
查看次数

使用reflect.Typeof()的golang类型断言

我试图用字符串值(名称)来识别结构. reflect.TypeOf回报Type.

但类型断言需要一个type.

我怎样才能铸造Typetype

或任何处理它的建议?

http://play.golang.org/p/3PJG3YxIyf

package main

import (
"fmt"
"reflect"
)
type Article struct {
    Id             int64       `json:"id"`
    Title          string      `json:"title",sql:"size:255"`
    Content        string      `json:"content"`
}


func IdentifyItemType(name string) interface{} {
    var item interface{}
    switch name {
    default:
        item = Article{}
    }
    return item
}

func main() {

    i := IdentifyItemType("name")
    item := i.(Article)
    fmt.Printf("Hello, item : %v\n", item)
    item2 := i.(reflect.TypeOf(i))  // reflect.TypeOf(i) is not a type
    fmt.Printf("Hello, item2 …
Run Code Online (Sandbox Code Playgroud)

types typeof go assertion

13
推荐指数
4
解决办法
2万
查看次数

使用JavaScript进行自信编程

我知道为什么断言编程是好的,所以我想用JavaScript.但是,我不想向用户显示错误框,这是不寻常的事情.只是忽略它,让它们重试可能会更好.

例如,此代码将生成错误框并中断用户.

function getDomainFromURL(url) {
    assertTrue(url, 'URL should not be null');

    ...parsing
}
Run Code Online (Sandbox Code Playgroud)

所以,我会这样做.

function getDomainFromURL(url) {
    if (!url) return;

    ...parsing
}
Run Code Online (Sandbox Code Playgroud)

我想,第二个对可用性有好处,第一个对开发有好处.因此,IMO最好将这些结合起来并使其assert消失在生产代码上.

问题1 你是这么认为的吗?或者有什么不同的想法?

问题2 如果您这么认为,有没有什么好方法可以使用Spring3框架?

javascript assert assertion spring-3

12
推荐指数
2
解决办法
7545
查看次数

我如何在 Cypress 中使用软断言

我已经从 npm 配置了软断言(npm i soft-assert),现在我的 package.josn 有 "soft-assert": "^0.2.3"

我想使用软断言功能

softAssert(actual, expected, msg, ignoreKeys)
Run Code Online (Sandbox Code Playgroud)

但不知道具体的使用步骤是什么

示例:当我在代码中使用软断言函数时,出现以下错误。

如果我这样使用

  1. cy.softAssert(10, 12, "预期实际不匹配并将执行下一行") :不支持或者如果我使用不同的方式,例如
  2. softAssert(10, 12, "预期实际不匹配并将执行下一行") : SoftAssert 未定义

谁能告诉我如何通过一些小例子在 cypress 代码中使用这个“softAssert”函数?


现在我面临的问题

it('asserts and logs and fails', () => { 
  Cypress.softAssert(10, 12, "expected actual mismatch..."); 
  cy.log("text") 
  Cypress.softAssertAll(); 
}) 
Run Code Online (Sandbox Code Playgroud)

我需要在软断言之后cy.log("text")在同一个“it”块中执行我的代码,但当前测试使整个“it”块失败,而不执行“cy.log(“text”)”语句。

automation assertion cypress

11
推荐指数
1
解决办法
7336
查看次数

开玩笑:测试数组是否不包含这些值?

我想验证给定的数组不包含任何值列表。有expect.arrayContaining,但我不明白它应该如何用于此目的。

看这个例子:

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3"])
Run Code Online (Sandbox Code Playgroud)

该测试失败,这是预期的行为。我想验证“3”是否不包含在数组中。一切都很好。

但是,现在我有多个值,如果数组包含其中任何一个值,我希望测试失败。

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3", "4"])
Run Code Online (Sandbox Code Playgroud)

尽管我预计该测试会失败,但该测试不会失败,因为该数组包含“3”。

我能做的是:

expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["3"])
expect(["1", "2", "3"]).not.toEqual(expect.arrayContaining(["4"])
...
Run Code Online (Sandbox Code Playgroud)

但必须为每个值重复整个期望行似乎不是正确的方法。特别是当arrayContaining将数组作为参数时,看起来您只能向其传递一个有用的值。

我确信这种行为有有效的用例,但我问如何以更简洁的方式通过用例来实现。基本上,我希望一旦数组包含第二个数组的一个或多个值,测试就会失败。有点像“黑名单”。

javascript arrays assertion jestjs

11
推荐指数
2
解决办法
3万
查看次数

索引历史不足

在MySQL日志中,有一个错误'InnoDB:索引0的历史记录不足'

我不知道为什么会这样.我用Google搜索并发现了这个:

InnoDB:如果使用一致快照启动事务,则在事务正在进行时将新索引添加到表中,后续UPDATE语句可能会错误地遇到错误:

ER_TABLE_DEF_CHANGED:索引的历史记录不足
此问题可能导致调试版本中的断言错误.(缺陷号14036214)

在我的情况下,我启动了事务并将数据插入到表中,在此之间我没有插入或更新该表中的数据.为什么会出现此错误?

mysql innodb assertion

10
推荐指数
1
解决办法
531
查看次数