我正在基于Espresso中的Android project 2.2.2运行仪器测试。当我在不同设备(例如Nexus 5手机(Android 6.0.1)和Nexus 9平板电脑(Android 7.1.1))上针对不同设备本地运行所有测试时,成功以下命令:
./gradlew testDebug connectedCheck --stacktrace -PdisablePreDex
一旦我使用此configuration在Travis CI上运行了相同的任务,然后其中两个测试失败并带有令人困惑的错误消息:
CityInfoFragmentTest > renderCityInfoWithStandardZone[test(AVD) - 4.3.1] FAILED
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError:
'with text: is
"Since May 1, 2014 only vehicles with a green sticker are allowed to drive into the low emission zone."
' doesn't match the selected view.
Expected: with text: is
"Since May 1, 2014 only vehicles with a green sticker are allowed to drive into the low emission zone."
如您所见,实际文本和预期文本匹配!!!
我没有使用Espresso 3.0.2,因为其中有一个bug which prevents running tests on certain devices。
答案 0 :(得分:1)
构建日志中的行1500 & 1501和1562 & 1563解释了出了什么问题。这是一个片段:
预计:带文字:“自2014年5月1日起,只有带有绿色标签的车辆才能进入低排放区。”
注意:text =从2014年5月1日起,只有带有绿色标签的车辆才能进入低排放区。
期望的字符串以“ Since”开头,而实际的字符串以“ As of”开头
您是否在测试中对字符串进行硬编码?如果是这样,您不应该:)