菜鸟教程小白 发表于 2022-12-11 19:50:05

ios - 排毒测试卡在 detox.init 的混合应用程序中


                                            <p><h1>说明</h1>

<p>在我的混合应用程序中运行 detox 时,detox 在超时之前卡在 init 上。 [最后的日志是 <code>detox verb ws send: {"type":"isReady","params":{},"messageId":-1000}</code>]</p>

<p>混合应用程序具有原生登录,但大多数应用程序都是原生 react 。如果我急于登录并进入应用程序的 react native 部分,那么 Detox 就会顺利运行。</p>

<h1>设置</h1>

<p>设置与 <a href="https://github.com/wix/detox/blob/master/docs/Introduction.GettingStarted.md" rel="noreferrer noopener nofollow">https://github.com/wix/detox/blob/master/docs/Introduction.GettingStarted.md</a> 中描述的相同</p>

<h3>init.js</h3>

<pre><code>onst detox = require(&#39;detox&#39;);
const config = require(&#39;../package.json&#39;).detox;

before(async () =&gt; {
console.log(&#34;************************* CONSOLE LOG ASYNC BEFORE *************************&#34;);
await detox.init(config);
console.log(&#34;************************* CONSOLE LOG ASYNC END BEFORE *************************&#34;);
});

after(async () =&gt; {
await detox.cleanup();
});
</code></pre>

<p>正如您在日志中看到的,它永远不会达到“CONSOLE LOG ASYNC END BEFORE”(除非我快速跳过应用程序的 ios 部分)</p>

<h3>包.json</h3>

<pre><code>&#34;dependencies&#34;: {
    ...
    &#34;mocha&#34;: &#34;5.0.4&#34;,
    &#34;detox&#34;: &#34;7.1.0&#34;,
    ...
},
&#34;detox&#34;: {
    &#34;configurations&#34;: {
      &#34;ios.sim.debug&#34;: {
      &#34;binaryPath&#34;: &#34;member/ios/build/Build/Products/Debug-iphonesimulator/MyappMember.app&#34;,
      &#34;build&#34;: &#34;xcodebuild -workspace member/ios/MyappMember.xcworkspace -scheme MyappMember -configuration Debug-sdk iphonesimulator -derivedDataPath member/ios/build&#34;,
      &#34;type&#34;: &#34;ios.simulator&#34;,
      &#34;name&#34;: &#34;iPhone 7&#34;
      }
    }
},
</code></pre>

<h1>Detox、Node、Device、Xcode 和 macOS 版本</h1>

<ul>
<li>排毒:7.1.0</li>
<li>节点:8.9.4</li>
<li>设备:Iphone 7 模拟器</li>
<li>Xcode:9.2</li>
<li>macOS:10.12.6</li>
</ul>

<h1>设备和详细排毒日志</h1>

<h3>详细的排毒日志</h3>

<pre><code>Bug Crusher:mobile etai$ detox test -l verbose
node_modules/.bin/mocha e2e --opts e2e/mocha.opts--loglevel verbose


************************* CONSOLE LOG ASYNC BEFORE *************************
detox-server info 16:50:24: server listening on localhost:57324...
detox verb ws onOpen
detox verb ws send: {&#34;type&#34;:&#34;login&#34;,&#34;params&#34;:{&#34;sessionId&#34;:&#34;417aebb8-870c-5798-827c-de0301e7cf17&#34;,&#34;role&#34;:&#34;tester&#34;},&#34;messageId&#34;:0}
detox verb ws onMessage: {&#34;type&#34;:&#34;loginSuccess&#34;,&#34;params&#34;:{&#34;sessionId&#34;:&#34;417aebb8-870c-5798-827c-de0301e7cf17&#34;,&#34;role&#34;:&#34;tester&#34;},&#34;messageId&#34;:0}
detox verb ws
detox verb 1: applesimutils --list &#34;iPhone 7&#34; --maxResults=1
detox info 1: Searching for device matching iPhone 7...
detox verb 1: stdout: [
detox verb 1: stdout:   {
detox verb 1: stdout:   &#34;state&#34; : &#34;Booted&#34;,
detox verb 1: stdout:   &#34;availability&#34; : &#34;(available)&#34;,
detox verb 1: stdout:   &#34;name&#34; : &#34;iPhone 7&#34;,
detox verb 1: stdout:   &#34;udid&#34; : &#34;ABE6CC96-22A1-4FB3-A62E-017033848CD7&#34;,
detox verb 1: stdout:   &#34;os&#34; : {
detox verb 1: stdout:       &#34;version&#34; : &#34;11.2&#34;,
detox verb 1: stdout:       &#34;availability&#34; : &#34;(available)&#34;,
detox verb 1: stdout:       &#34;name&#34; : &#34;iOS 11.2&#34;,
detox verb 1: stdout:       &#34;identifier&#34; : &#34;com.apple.CoreSimulator.SimRuntime.iOS-11-2&#34;,
detox verb 1: stdout:       &#34;buildversion&#34; : &#34;15C107&#34;
detox verb 1: stdout:   }
detox verb 1: stdout:   }
detox verb 1: stdout: ]
detox verb 1: stdout:
detox verb 2: detox verb 2: applesimutils --list
...
detox verb 3: /usr/bin/xcrun simctl uninstall ABE6CC96-22A1-4FB3-A62E-017033848CD7 com.myapp.MyappMemberDebug
detox info 3: Uninstalling com.myapp.MyappMemberDebug...
detox info 3: com.myapp.MyappMemberDebug uninstalled
detox verb 4: /usr/bin/xcrun simctl install ABE6CC96-22A1-4FB3-A62E-017033848CD7 /Users/etai/Code/data/mobile/member/ios/build/Build/Products/Debug-iphonesimulator/MyappMember.app
detox info 4: Installing /Users/etai/Code/data/mobile/member/ios/build/Build/Products/Debug-iphonesimulator/MyappMember.app...
detox info 4: /Users/etai/Code/data/mobile/member/ios/build/Build/Products/Debug-iphonesimulator/MyappMember.app installed
detox verb 5: /usr/bin/xcrun simctl terminate ABE6CC96-22A1-4FB3-A62E-017033848CD7 com.myapp.MyappMemberDebug
detox info 5: Terminating com.myapp.MyappMemberDebug...
detox info 5: com.myapp.MyappMemberDebug terminated
detox verb 6: /bin/cat /dev/null &gt;$HOME/Library/Developer/CoreSimulator/Devices/ABE6CC96-22A1-4FB3-A62E-017033848CD7/data/tmp/detox.last_launch_app_log.out 2&gt;$HOME/Library/Developer/CoreSimulator/Devices/ABE6CC96-22A1-4FB3-A62E-017033848CD7/data/tmp/detox.last_launch_app_log.err &amp;&amp; SIMCTL_CHILD_DYLD_INSERT_LIBRARIES=&#34;/Users/etai/Library/Detox/ios/fc3bb123b36c426327a2ab12f6d5185aa779ec37/Detox.framework/Detox&#34; /usr/bin/xcrun simctl launch --stdout=/tmp/detox.last_launch_app_log.out --stderr=/tmp/detox.last_launch_app_log.err ABE6CC96-22A1-4FB3-A62E-017033848CD7 com.myapp.MyappMemberDebug --args -detoxServer ws://localhost:57324 -detoxSessionId 417aebb8-870c-5798-827c-de0301e7cf17
detox info 6: Launching com.myapp.MyappMemberDebug...
detox verb 6: stdout: com.myapp.MyappMemberDebug: 6445
detox verb 6: stdout:
detox info 6: com.myapp.MyappMemberDebug launched. The stdout and stderr logs were recreated, you can watch them with:
      tail -F $HOME/Library/Developer/CoreSimulator/Devices/ABE6CC96-22A1-4FB3-A62E-017033848CD7/data/tmp/detox.last_launch_app_log.{out,err}
detox verb ws send: {&#34;type&#34;:&#34;isReady&#34;,&#34;params&#34;:{},&#34;messageId&#34;:-1000}
1) &#34;before all&#34; hook

0 passing (2m)
1 failing

1) &#34;before all&#34; hook:
   Error: Timeout of 120000ms exceeded. For async tests and hooks, ensure &#34;done()&#34; is called; if returning a Promise, ensure it resolves.




child_process.js:644
    throw err;
    ^

Error: Command failed: node_modules/.bin/mocha e2e --opts e2e/mocha.opts--loglevel verbose
    at checkExecSyncError (child_process.js:601:13)
    at Object.execSync (child_process.js:641:13)
    at runMocha (/Users/etai/Code/data/mobile/node_modules/detox/local-cli/detox-test.js:72:6)
    at Object.&lt;anonymous&gt; (/Users/etai/Code/data/mobile/node_modules/detox/local-cli/detox-test.js:50:5)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
Bug Crusher:mobile etai$
</code></pre>

<h3>设备日志</h3>

<pre><code>2018-03-08 16:50:29.645 MyappMember Crash handler setup started.
2018-03-08 16:50:29.645 MyappMember Crash handler setup completed.
2018-03-08 16:50:29.646 MyappMember Enabling accessibility for automation on Simulator.
2018-03-08 16:50:30.447 MyappMember You&#39;ve implemented -[&lt;UIApplicationDelegate&gt; application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add &#34;remote-notification&#34; to the list of your supported UIBackgroundModes in your Info.plist.
2018-03-08 16:50:30:452 MyappMember INFO: App did finish launching. Running v4.8.0.
2018-03-08 16:50:30:469 MyappMember INFO: First time app has been run. Clearing session token from keychain.
2018-03-08 16:50:30.519 MyappMember Simulator user has requested new graphics quality: 10
2018-03-08 16:50:30.567 MyappMember Version 3.8.6 (124)
2018-03-08 16:50:30:577 MyappMember INFO: App did become active
2018-03-08 16:50:30:583 MyappMember DBG: Device registered 0 | Alerts enabled 0
2018-03-08 16:50:30:584 MyappMember INFO: Checking if healthkit data available in background
2018-03-08 16:50:30:584 MyappMember INFO: Allocated new OIHealthKitService &lt;OIHealthKitService: 0x6040002a5ac0&gt;
2018-03-08 16:50:30:584 MyappMember INFO: Allocated steps data source
2018-03-08 16:50:30:584 MyappMember INFO: Allocated new steps data source &lt;OIStepsDataSource: 0x6040000dc230&gt;
2018-03-08 16:50:30.664 MyappMember Unknown class UIview in Interface Builder file.
2018-03-08 16:50:30:676 MyappMember INFO: Error -25300. Identifier com.myapp.keychain.session_token
2018-03-08 16:50:30:678 MyappMember INFO: View will appear for Logged Out Home Screen
2018-03-08 16:50:30:756 MyappMember INFO: Healthkit data available: 1
2018-03-08 16:50:30:779 MyappMember INFO: OIQuickLoginAuthManager: Prompt not shown this run
2018-03-08 16:50:30:780 MyappMember INFO: Error -25300. Identifier touchID
2018-03-08 16:50:30:781 MyappMember INFO: Error -25300. Identifier passcode
2018-03-08 16:50:30:781 MyappMember INFO: OIQuickLoginAuthManager: Neither touch id nor passcode enabled so nothing to do
2018-03-08 16:50:30:797 MyappMember INFO: View will appear for (null)
2018-03-08 16:50:30:797 MyappMember INFO: OIViewController session is nil!
2018-03-08 16:50:32.772 MyappMember Warning: NSUncaughtExceptionHandler is &#39;grey_uncaughtExceptionHandler&#39; in &#39;/Users/etai/Library/Detox/ios/fc3bb123b36c426327a2ab12f6d5185aa779ec37/Detox.framework/Frameworks/EarlGrey.framework/EarlGrey&#39;
The signal SIGABRT has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGBUS has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGFPE has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGILL has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGSEGV has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGSYS has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
The signal SIGTRAP has a non-Crashlytics handler (CLSLookupFunctionPointer).This will interfere with reporting.
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>此错误与排毒内部有关。它是固定的。 <a href="https://github.com/wix/detox/issues/615" rel="noreferrer noopener nofollow">https://github.com/wix/detox/issues/615</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 排毒测试卡在 detox.init 的混合应用程序中,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/49183240/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/49183240/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 排毒测试卡在 detox.init 的混合应用程序中