Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在appcenter中,失败的单元测试仅指定函数名和行号_Android_Unit Testing_Kotlin_Junit_Visual Studio App Center - Fatal编程技术网

Android 在appcenter中,失败的单元测试仅指定函数名和行号

Android 在appcenter中,失败的单元测试仅指定函数名和行号,android,unit-testing,kotlin,junit,visual-studio-app-center,Android,Unit Testing,Kotlin,Junit,Visual Studio App Center,编辑,可能在appcenter论坛上发布这篇文章更好(我现在已经完成了): 简言之,我正在开发的一个应用程序是在appcenter中构建的,并设置为运行单元测试,但我遇到的问题是,我无法找出是什么导致它们失败(它们不会在本地失败) 我不能在这里分享我遇到问题的代码,但为了说明我遇到的问题,假设我定义了以下kotlin函数: fun returnFooString() { return "Foo " } 并编写了以下测试: @Test fun test_return

编辑,可能在appcenter论坛上发布这篇文章更好(我现在已经完成了):

简言之,我正在开发的一个应用程序是在appcenter中构建的,并设置为运行单元测试,但我遇到的问题是,我无法找出是什么导致它们失败(它们不会在本地失败)

我不能在这里分享我遇到问题的代码,但为了说明我遇到的问题,假设我定义了以下kotlin函数:

fun returnFooString() {
    return "Foo "
}
并编写了以下测试:

@Test
fun test_returnFooString_returns_foo() {
    val foo = returnFooString()
    assertThat("${foo} is equal to "Foo", "Foo", foo)
}
我想看到的是:

java.lang.AssertionError: Foo  is equal to Foo
    Expected: "Foo"
    but: was "Foo "
Expected :Foo 
Actual   :Foo
com.mypackage.name.MyTest > test_returnFooString_returns_foo FAILED
    java.lang.Exception at MyTest.kt:4
但是,我在appcenter日志中看到的唯一失败测试是:

com.mypackage.name.MyTest > test_returnFooString_returns_foo FAILED
    java.lang.AssertionError at MyTest.kt:4
所以我不知道刚才发生了什么。我对android开发还是个初学者,虽然我搜索过谷歌,但还没有成功地找到相关的东西。是否可以在build.gradle中放置一些设置以不抑制断言消息,或者需要在appcenter中指定一些环境变量,或者其他一些设置以查看预期和接收到的内容

现在,我正在考虑是否可以在测试/代码中抛出异常来阐明这个问题,但必须有更好的方法(尤其是因为构建大约需要10分钟)

编辑:抛出异常不起作用,如果我抛出一个异常并注销我感兴趣的每个变量,我得到的结果如下:

java.lang.AssertionError: Foo  is equal to Foo
    Expected: "Foo"
    but: was "Foo "
Expected :Foo 
Actual   :Foo
com.mypackage.name.MyTest > test_returnFooString_returns_foo FAILED
    java.lang.Exception at MyTest.kt:4

在这一点上,我似乎不得不放弃测试,或者做一些疯狂的事情,比如写256个测试来找出字符串在位置0处的第一个字符,然后10分钟后再写256个字符来找出第二个…

我发现可以通过以下方式启用日志记录:

testOptions {
    unitTests.all {
        testLogging {
            showStandardStreams true
        }
    }
}