Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Bash AppCenter生成后脚本-尝试在执行Xamarin.UITest之前生成它_Bash_Xamarin_Visual Studio App Center_Xamarin.uitest - Fatal编程技术网

Bash AppCenter生成后脚本-尝试在执行Xamarin.UITest之前生成它

Bash AppCenter生成后脚本-尝试在执行Xamarin.UITest之前生成它,bash,xamarin,visual-studio-app-center,xamarin.uitest,Bash,Xamarin,Visual Studio App Center,Xamarin.uitest,我已经通过Visual Studio应用程序中心为我的iOS和droid xamarin项目设置了CI。在我尝试设置UI测试运行之前,一切都很好。我为android和iOS创建了一个构建后脚本,该脚本当前位于解决方案文件(appcenter-post-build.sh)的文件夹下,这是我构建整个解决方案[包括Xamarin.UITest项目]所必需的 我成功地使用了iOS,因为appcenter允许我为构建选择解决方案,但在Android上不允许这样做(appcenter-post-build.

我已经通过Visual Studio应用程序中心为我的iOS和droid xamarin项目设置了CI。在我尝试设置UI测试运行之前,一切都很好。我为android和iOS创建了一个构建后脚本,该脚本当前位于解决方案文件(appcenter-post-build.sh)的文件夹下,这是我构建整个解决方案[包括Xamarin.UITest项目]所必需的

我成功地使用了iOS,因为appcenter允许我为构建选择解决方案,但在Android上不允许这样做(appcenter-post-build.sh,与droid.csproj位于同一文件夹下)。因此,我的解决方法是创建另一个专门针对Android的appcenter post脚本。我试图做的是在Android构建之后构建Xamarin.ui测试

每当我在试图构建Xamarin.UITest的构建后脚本上执行此操作时:

/Library/Frameworks/Mono.framework/Versions/5_12_0/bin/msbuild $APPCENTER_SOURCE_DIRECTORY/MyDirectory/UITests/Project.UITests.csproj /p:Configuration=Debug
正在生成日志中返回此错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: error : The specified iOS provisioning profile 'SampleProvisioningProfile' could not be found

它似乎也在尝试构建iOS项目,它应该这样做。对这个问题有什么建议吗。在过去的一周里,我一直在努力让它工作。

以下是我用于此应用程序的构建后脚本:

对于App Center构建,我建议只构建特定的
.csproj
文件,因为此构建后脚本将构建您的UITest项目

iOS生成后脚本
#/usr/bin/env bash
如果[“$APPCENTER\u XAMARIN\u配置”=“调试”];然后
echo“生成后脚本已启动”
SolutionFile=`find“$APPCENTER\u SOURCE\u DIRECTORY”-名称[您的解决方案文件].sln`
SolutionFileFolder=`dirname$SolutionFile`
UITestProject=`find“$APPCENTER\u SOURCE\u DIRECTORY”-名称[您的UITest CSProj文件].CSProj`
echo SolutionFile:$SolutionFile
echo SolutionFileFolder:$SolutionFileFolder
echo UITestProject:$UITestProject
chmod-R 777$SolutionFileFolder
msbuild“$UITestProject”/property:Configuration=$APPCENTER\u XAMARIN\u Configuration
UITestDLL=`find“$APPCENTER\u SOURCE\u DIRECTORY”-name“[您的UITest输出文件名].dll“| grep bin| head-1`”
echo UITestDLL:$UITestDLL
UITestBuildDir=`dirname$UITestDLL`
echo UITestBuildDir:$UITestBuildDir
UITestVersionNumber=`grep'[0-9]'$UITestProject | grep Xamarin.UITest | grep-o'[0-9]\{1,3\\\.[0-9]\{1,3\}.[0-9]\{1,3\}`
echo UITestVersionNumber:$UITestVersionNumber
TestCloudExe=`find~/.nuget | grep test-cloud.exe | grep$UITestVersionNumber | head-1`
echo TestCloudExe:$TestCloudExe
TestCloudExeDirectory=`dirname$TestCloudExe`
echo TestCloudExeDirectory:$TestCloudExeDirectory
DSYMFile=`find“$APPCENTER_SOURCE_DIRECTORY”-name*.dsym | head-1`
DSYMDirectory=`dirname$DSYMFile`
npm安装-g appcenter-cli@1.2.2
appcenter登录--令牌
appcenter测试运行uitest--app“[您的appcenter应用程序名称]”--devices“[您的appcenter iOS设备列表]”--app path$IPAFile--test series“master”--locale“en_US”--build dir$UITestBuildDir--dsym dir$dsymdir--uitest tools dir$testcloudexeditor--async
fi
Android后期构建脚本
#/usr/bin/env bash
如果[“$APPCENTER\u XAMARIN\u配置”=“调试”];然后
echo“生成后脚本已启动”
SolutionFile=`find“$APPCENTER\u SOURCE\u DIRECTORY”-名称[您的解决方案文件].sln`
SolutionFileFolder=`dirname$SolutionFile`
UITestProject=`find“$APPCENTER\u SOURCE\u DIRECTORY”-名称[您的UITest CSProj文件].CSProj`
echo SolutionFile:$SolutionFile
echo SolutionFileFolder:$SolutionFileFolder
echo UITestProject:$UITestProject
chmod-R 777$SolutionFileFolder
msbuild“$UITestProject”/property:Configuration=$APPCENTER\u XAMARIN\u Configuration
UITestDLL=`find“$APPCENTER\u SOURCE\u DIRECTORY”-name“[Your UITest Output DLL].DLL”| grep bin| head-1`
echo UITestDLL:$UITestDLL
UITestBuildDir=`dirname$UITestDLL`
echo UITestBuildDir:$UITestBuildDir
UITestVersionNumber=`grep'[0-9]'$UITestProject | grep Xamarin.UITest | grep-o'[0-9]\{1,3\\\.[0-9]\{1,3\}.[0-9]\{1,3\}`
echo UITestVersionNumber:$UITestVersionNumber
TestCloudExe=`find~/.nuget | grep test-cloud.exe | grep$UITestVersionNumber | head-1`
echo TestCloudExe:$TestCloudExe
TestCloudExeDirectory=`dirname$TestCloudExe`
echo TestCloudExeDirectory:$TestCloudExeDirectory
APKFile=`find“$APPCENTER_SOURCE_DIRECTORY”-name*.apk | head-1`
npm安装-g appcenter-cli@1.2.2
appcenter登录--令牌
appcenter测试运行uitest--app“[您的appcenter应用程序名称]”--devices“[您的appcenter Android设备列表]”--app path$APKFile--test series“master”--locale“en_US”--builddir$UITestBuildDir--uitest tools dir$testcloudexeditor--async
fi

我意识到这已经晚了大约18个月,但我刚刚遇到了完全相同的问题,我找到了一种在App Center中使事情顺利进行的方法,即使您在UI测试项目中有对特定于平台的项目的项目引用

  • 这只是Android项目中的一个问题,我们必须专门构建UI测试项目,以便在中运行UI测试
@mindOfAI的原始帖子指出,在构建Android项目之后,使用
appcenter post build.sh
script()构建UI测试项目,以准备运行Android的UI测试。问题在于,如果要在Visual Studio for Mac中为UI测试项目设置“测试应用程序”,则会将特定于平台的项目的引用添加到UI测试项目中

如果UI测试项目引用iOS项目,那么它将尝试将iOS项目构建为UI测试项目的依赖项。生成iOS项目需要有效的iOS证书和配置文件,因此生成失败

本质上,我们希望引用出现在那里,这样我们就可以更容易地在本地机器上运行UI测试,但我们希望它们出现在App Center中,这样我们就不会浪费时间构建不必要的测试