

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 AWS Device Farm 中对 XCTest 测试进行故障排除
<a name="troubleshooting-xctest"></a>

以下主题列出了在上传 XCTest 测试期间出现的错误消息并推荐了解决方法来解决每个错误。

**注意**  
下面的说明假定您使用的是 MacOS。

## XCTEST\_TEST\_PACKAGE\_UNZIP\_FAILED
<a name="XCTEST_TEST_PACKAGE_UNZIP_FAILED"></a>

如果您看到以下消息，请执行以下步骤来修复此问题。

**警告**  
我们无法打开您的测试 ZIP 文件。请验证文件是否有效，然后重试。

确保您可以解压应用程序包，而不会出现错误。在以下示例中，程序包的名称为 **swiftExampleTests.xctest-1.zip**。

1. 将您的测试程序包复制到工作目录，然后运行以下命令：

   ```
   $ unzip swiftExampleTests.xctest-1.zip
   ```

1. 成功解压缩程序包后，您可以通过运行以下命令找到工作目录树结构：

   ```
   $ tree .
   ```

   有效的 XCTest 程序包应生成类似以下内容的输出：

   ```
   .
   `-- swiftExampleTests.xctest (directory)
                 |-- Info.plist
                 `-- (any other files)
   ```

   有关更多信息，请参阅 [将 Device Farm 与 XCTest 适用于 iOS 的集成](test-types-ios-xctest.md)。

## XCTEST\_TEST\_PACKAGE\_XCTEST\_DIR\_MISSING
<a name="XCTEST_TEST_PACKAGE_XCTEST_DIR_MISSING"></a>

如果您看到以下消息，请执行以下步骤来修复此问题。

**警告**  
我们无法在您的测试程序包中找到 .xctest 目录。请解压缩您的测试程序包，验证 .xctest 目录位于该程序包中，然后重试。

在以下示例中，程序包的名称为 **swiftExampleTests.xctest-1.zip**。

1. 将您的测试程序包复制到工作目录，然后运行以下命令：

   ```
   $ unzip swiftExampleTests.xctest-1.zip
   ```

1. 成功解压缩程序包后，您可以通过运行以下命令找到工作目录树结构：

   ```
   $ tree .
   ```

   如果 XCTest 程序包有效，您将在工作目录中找到一个其名称类似于 {{swiftExampleTests.xctest}} 的目录。该名称应以 {{.xctest}} 结尾。

   ```
   .
   `-- {{swiftExampleTests.xctest}} (directory)
                 |-- Info.plist
                 `-- (any other files)
   ```

   有关更多信息，请参阅 [将 Device Farm 与 XCTest 适用于 iOS 的集成](test-types-ios-xctest.md)。

## XCTEST\_TEST\_PACKAGE\_PLIST\_FILE\_MISSING
<a name="XCTEST_TEST_PACKAGE_PLIST_FILE_MISSING"></a>

如果您看到以下消息，请执行以下步骤来修复此问题。

**警告**  
我们无法在 .xctest 目录中找到 Info.plist 文件。请解压缩您的测试程序包，打开 .xctest 目录，并验证 Info.plist 文件在该目录中，然后重试。

在以下示例中，程序包的名称为 **swiftExampleTests.xctest-1.zip**。

1. 将您的测试程序包复制到工作目录，然后运行以下命令：

   ```
   $ unzip swiftExampleTests.xctest-1.zip
   ```

1. 成功解压缩程序包后，您可以通过运行以下命令找到工作目录树结构：

   ```
   $ tree .
   ```

   如果 XCTest 程序包有效，您将在 {{.xctest}} 目录中找到 {{Info.plist}} 文件。在下面的示例中，该目录名为 {{swiftExampleTests.xctest}}。

   ```
   .
   `-- swiftExampleTests.xctest (directory)
                 |-- {{Info.plist}}
                 `-- (any other files)
   ```

   有关更多信息，请参阅 [将 Device Farm 与 XCTest 适用于 iOS 的集成](test-types-ios-xctest.md)。

## XCTEST\_TEST\_PACKAGE\_PACKAGE\_NAME\_VALUE\_MISSING
<a name="XCTEST_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING"></a>

如果您看到以下消息，请执行以下步骤来修复此问题。

**警告**  
我们无法在 Info.plist 文件中找到程序包名称值。请解压缩您的测试程序包，然后打开 Info.plist 文件，确认指定了“CFBundleIdentifier”键，然后重试。

在以下示例中，程序包的名称为 **swiftExampleTests.xctest-1.zip**。

1. 将您的测试程序包复制到工作目录，然后运行以下命令：

   ```
   $ unzip swiftExampleTests.xctest-1.zip
   ```

1. 成功解压缩程序包后，您可以通过运行以下命令找到工作目录树结构：

   ```
   $ tree .
   ```

   您应该在 {{.xctest}} 目录 (例如我们示例中的 {{swiftExampleTests.xctest}}) 中找到 {{Info.plist}} 文件：

   ```
   .
   `-- swiftExampleTests.xctest (directory)
                 |-- {{Info.plist}}
                 `-- (any other files)
   ```

1. 要查找程序包名称值，您可以使用 Xcode 或 Python 打开 Info.plist。

   对于 Python，您可以通过运行以下命令来安装 biplist 模块：

   ```
   $ pip install biplist
   ```

1. 接下来，打开 Python 并运行以下命令：

   ```
   import biplist
   info_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')
   print info_plist['CFBundleIdentifier']
   ```

   有效的 XCtest 应用程序包应生成类似以下内容的输出：

   ```
   com.amazon.kanapka.swiftExampleTests
   ```

   有关更多信息，请参阅 [将 Device Farm 与 XCTest 适用于 iOS 的集成](test-types-ios-xctest.md)。

## XCTEST\_TEST\_PACKAGE\_EXECUTABLE\_VALUE\_MISSING
<a name="XCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING"></a>

如果您看到以下消息，请执行以下步骤来修复此问题。

**警告**  
我们无法在 Info.plist 文件中找到可执行文件值。请解压缩您的测试程序包，然后打开 Info.plist 文件，确认指定了“CFBundleExecutable”键，然后重试。

在以下示例中，程序包的名称为 **swiftExampleTests.xctest-1.zip**。

1. 将您的测试程序包复制到工作目录，然后运行以下命令：

   ```
   $ unzip swiftExampleTests.xctest-1.zip
   ```

1. 成功解压缩程序包后，您可以通过运行以下命令找到工作目录树结构：

   ```
   $ tree .
   ```

   您应该在 {{.xctest}} 目录 (例如我们示例中的 {{swiftExampleTests.xctest}}) 中找到 {{Info.plist}} 文件：

   ```
   .
   `-- swiftExampleTests.xctest (directory)
                 |-- {{Info.plist}}
                 `-- (any other files)
   ```

1. 要查找程序包名称值，您可以使用 Xcode 或 Python 打开 Info.plist。

   对于 Python，您可以通过运行以下命令来安装 biplist 模块：

   ```
   $ pip install biplist
   ```

1. 接下来，打开 Python 并运行以下命令：

   ```
   import biplist
   info_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')
   print info_plist['CFBundleExecutable']
   ```

   有效的 XCtest 应用程序包应生成类似以下内容的输出：

   ```
   swiftExampleTests
   ```

   有关更多信息，请参阅 [将 Device Farm 与 XCTest 适用于 iOS 的集成](test-types-ios-xctest.md)。