0

我有一个 Xamarin Forms 应用程序,使用 Xamarin.UITest 进行测试,我需要检测它何时在 App Center Test 中运行。

根据文档,环境变量RUNNING_IN_APP_CENTER应设置为1自动 - 但Environment.GetEnvironmentVariable("RUNNING_IN_APP_CENTER")在运行时没有值。

事实上,如果我遍历所有环境变量,它就不存在:

KNOX_STORAGE:/data/knox/ext_sdcard
ANDROID_SOCKET_zygote:11
ASEC_MOUNTPOINT:/mnt/asec
MONO_DEBUG:gen-compact-seq-points
TMPDIR:/data/user/0/com.acme.widgets.dev/cache
XA_HTTP_CLIENT_HANDLER_TYPE:Xamarin.Android.Net.AndroidClientHandler
PATH:/sbin:/system/sbin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin
MC_AUTH_TOKEN_PATH:/efs
XDG_CONFIG_HOME:/data/user/0/com.acme.widgets.dev/files/.config
DOWNLOAD_CACHE:/data/cache
ANDROID_ASSETS:/system/app
XA_TLS_PROVIDER:btls
ANDROID_ROOT:/system
MONO_GC_PARAMS:major=marksweep
XAMARIN_BUILD_ID:4658cc0f-1a7c-4c97-93a6-f2f09c5edb04
BOOTCLASSPATH:/system/framework/core-oj.jar:/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/bouncycastle.jar:/system/framework/apache-xml.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/sprengine.jar:/system/framework/android.hidl.base-V1.0-java.jar:/system/framework/android.hidl.manager-V1.0-java.jar:/system/framework/knoxsdk.jar:/system/framework/timakeystore.jar:/system/framework/fipstimakeystore.jar:/system/framework/sec_edm.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/smartbondingservice.jar:/system/framework/ucmopensslenginehelper.jar:/system/framework/esecomm.jar:/system/framework/securetimersdk.jar:/system/framework/sec_sdp_sdk.jar:/system/framework/sec_sdp_hidden_sdk.jar:/system/framework/framework-oahl-backward-compatibility.jar:/system/framework/android.test.base.jar:/system/framework/knoxvpnuidtag.jar:/system/framework/SemAudioThumbnail.jar:/system/framework/knoxguard.jar:/system/framework/drutils.jar
ANDROID_DATA:/data
LANG:en-GB
EXTERNAL_STORAGE:/sdcard
ANDROID_BOOTLOGO:1
ENC_EMULATED_STORAGE_TARGET:/storage/enc_emulated
HOME:/data/user/0/com.acme.widgets.dev/files
SYSTEMSERVERCLASSPATH:/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar:/system/framework/com.android.location.provider.jar:/system/framework/hqm.jar:/system/framework/hcm.jar
ANDROID_STORAGE:/storage
XDG_DATA_HOME:/data/user/0/com.acme.widgets.dev/files/.local/share

根据文档,我还尝试更改我的 App Center CLI 命令以包含额外的环境变量:

--test-parameter "app_env=MY_VAR=1"

但同样,MY_VAR在应用程序中不可用。

是否有其他方法可以读取我缺少的环境变量,或者是否有其他方法可以在 App Center Test 中运行时进行检测?

4

1 回答 1

0

你不能只使用“测试编译器指令”在代码中检测到它:

#if ENABLE_TEST_CLOUD
    Xamarin.Calabash.Start(); 
    App.IsRunningInTestMode=true;
#endif

查看您启用测试配置的 AppDelegate 和 MainActivity。

于 2019-11-13T19:06:21.540 回答