- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我对动画按钮的意思。我让它有一个 ID,但它无法被 Detox 以某种方式定位。
Detox eliminates flakiness by automatically synchronizing your tests with the app. A test cannot continue to the next line if the app is busy. The test will only resume when the app becomes idle. Detox monitors your app very closely in order to know when it's idle. It tracks several asynchronous operations and waits until they complete. This includes:
Keeping track of all network requests that are currently in-flight and waiting until they complete Keeping track of pending animations and waiting until they complete Keeping track of timers (like setTimeout) and waiting until they expire Keeping track of the React Native bridge which carries asynchronous messages Keeping track of asynchronous React Native layout and the shadow queue Keeping track of the JavaScript event loop which may contain pending asynchronous actions
最佳答案
来自排毒文档:
Endless looping animations
By default, Detox will wait until animations complete. If you have an endless looping animation, this may cause Detox to hang. In this case, consider turning off the animation synchronization or remove the endless loop in your E2E build with react-native-repackager.
General remarks
Infinite animations (looped animations) can make detox wait forever. Please consider turning looped animations off for testing. It's also a good practice to speed up all animations for testing.
disableSynchronization()
- 因此您可以暂时禁用同步以解决动画问题
Currently supports only RN 0.51
$ yarn add react-native-config
$ react-native link react-native-config
.env.production
和
.env.testing
在根 React Native 应用程序目录中。然后我正在使用
IS_动画 根据构建环境切换动画的配置变量。您需要添加
ENVFILE=.env.testing
和
ENVFILE=.env.production
到您的排毒构建配置。
ENV_TYPE=Production
IS_ANIMATE=1
ENV_TYPE=Testing
IS_ANIMATE=0
import Config from 'react-native-config'
import React, { Component } from 'react'
import {
AppRegistry,
StyleSheet,
Alert,
Animated,
View,
TouchableOpacity,
Text
} from 'react-native'
class example extends Component {
constructor(props) {
super(props)
this.state = {
radius: new Animated.Value(1)
}
}
componentDidMount() {
// only enable animation for production
if (Config.IS_ANIMATE == true) {
this.cycleAnimation()
}
}
cycleAnimation() {
Animated.loop(
Animated.sequence([
Animated.timing(this.state.radius, {
toValue: 2,
duration: 500,
delay: 1000
}),
Animated.timing(this.state.radius, {
toValue: 1,
duration: 500
})
])
).start()
}
render() {
return (
<View testID='container' style={styles.container}>
<Text>{Config.ENV_TYPE}</Text>
<TouchableOpacity
testID='button'
onPress={() => Alert.alert("I was pressed")}
>
<Animated.View
style={[
styles.button,
{transform: [
{scale: this.state.radius},
]}
]}
>
<Text>START DIARY</Text>
</Animated.View>
</TouchableOpacity>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center'
},
button: {
justifyContent: 'center',
alignItems: 'center',
borderRadius: 60,
width: 120,
height: 120,
backgroundColor: 'green'
},
text: {
padding: 5,
fontSize: 14
}
})
AppRegistry.registerComponent('example', () => example)
it('Animated Button', async () => {
const buttonElement = element(by.id('button'));
await expect(buttonElement).toBeVisible();
await buttonElement.tap();
});
"detox": {
"specs": "e2e",
"configurations": {
"ios.sim.release": {
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/example.app",
"build": "ENVFILE=.env.production export RCT_NO_LAUNCH_PACKAGER=true && xcodebuild -project ios/example.xcodeproj -scheme example -configuration Release -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 5s, iOS 10.3"
},
"ios.sim.test": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/example.app",
"build": "ENVFILE=.env.testing xcodebuild -project ios/example.xcodeproj -scheme example -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build -arch x86_64",
"type": "ios.simulator",
"name": "iPhone 5s, iOS 10.3"
}
}
}
detox build --configuration ios.sim.release && detox test --configuration ios.sim.release
detox build --configuration ios.sim.test && detox test --configuration ios.sim.test
关于detox - 动画按钮阻止排毒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47391019/
我想知道如何在 React Native 中默认 AsyncStorage 值以进行排毒测试。 我有一个欢迎模式,显示用户首次登录的时间。我们通过存储 AsyncStorage 值来控制是否显示模态。
我正在尝试获取 react-native "Hello World" app使用 Detox 设置并在 Bitrise.io 上运行。我阅读了 react-native-cli 入门指南,并尝试在 B
这就是我对动画按钮的意思。我让它有一个 ID,但它无法被 Detox 以某种方式定位。 Detox eliminates flakiness by automatically synchronizin
运行 detox test运行套件中的所有测试。有没有办法运行测试的子集?单个测试文件,或单个测试用例。 根据文档,我已将 Detox 配置为使用 Mocha 作为测试运行程序。我知道摩卡有一个 -g
我需要使用 native IOS DatePicker 输入一天。我如何将控制轮旋转到可能不在 View 中的某个值,因为这是从当前日期开始的? 最佳答案 Detox 7.3.x 支持与 iOS 交互
我正在使用 Detox 在 React Native 应用程序上使用以下规范进行 E2E 测试: react native 0.55.4 节点9.2.0 排毒7.3.7 当我在应用程序内的页面上时,我
有没有一种方法可以在不使用 Detox 的情况下检查元素是否存在?现在,我必须将我的逻辑嵌套在 try/catch block 中以控制测试流程,以减轻在继续测试之前检查屏幕状态时的不稳定。我更愿意使
有没有一种方法可以在不使用 Detox 的情况下检查元素是否存在?现在,我必须将我的逻辑嵌套在 try/catch block 中以控制测试流程,以减轻在继续测试之前检查屏幕状态时的不稳定。我更愿意使
我正在尝试使用 device.launchApp({ permissions: { notifications: 'YES' } }) 启用权限,但它似乎没有被调用。 这是我的测试: describe
我正在关注 detox mocking guide与 typescript 。该应用程序始终打印 X.ts 的 console.log文件而不是 X.e2e.ts文件。 依赖版本。 react-nat
使用 detox 运行测试用例时,我面临以下错误。 我安装了所有依赖项作为它的一部分。 Can't find a simulator to match with " iPhone 6 ", run '
我有一个像这样的导航器结构: stack drawer stack tab 我的层次结构是: view view flatlist 我试图让我的平面列表向下滚动。您可以看到手指动画,但列表没有移
我正在使用 Detox在我的 React Native 项目中运行端到端测试。我也在使用假装.js 来模拟我的 API 请求,我正在努力寻找一种方法来了解应用程序当前是否处于“测试”模式。 我正在传递
我目前正在为现有项目设置 Detox 并遇到障碍。 我正在使用 Detox + Jest 并收到错误消息 [Client.js/PENDING_REQUESTS] App has not respon
问题描述: 尝试为 Expo Ejected App 运行排毒测试时,detox build成功,但尝试运行 detox test面临以下错误 DetoxRuntimeError:Detox inst
我已经在 detox repo 上为此创建了一个问题 here . 我有一个使用 Jest 测试的 React Native 应用程序和 Detox . 在本地,Detox 测试运行没有任何问题(也在
描述 在我的混合应用程序中运行 detox 时,detox 在超时之前卡在了 init 上。 [最后一条日志是 detox verb ws send: {"type":"isReady","param
我可以使用 Jest 期望值 ( https://jestjs.io/docs/en/expect ) 而不是 Detox 期望值吗?如果可能的话,你能告诉我怎么做吗?我安装了 Jest runner
我想在我的 react-native 应用程序中运行排毒测试时传递环境变量: "ios.sim.debug": { "binaryPath": "ios/build/Build/Produc
请有人告诉我用于本地排毒测试的模拟文件如何 react ?我在关注 this article 我正在使用 react-native 版本 0.57.7 和 detox 9.1.2 我在根目录中创建了
我是一名优秀的程序员,十分优秀!