C# GoogleAPI - Как установить длительность, когда тип переменной «объект»? - PullRequest
0 голосов
/ 04 марта 2020

Я застрял с моей проблемой с использованием "Google.Apis.Testing.v1.Data", и их документация мне не помогает.

Я должен установить значение "тайм-аут" (= длительность ), но тип переменной, например, «объект», а не «float». Я пытался поместить int, float и string, но это не работает.

API объекта do c имеет значение здесь . Моя переменная - «TestTimeout», которая определенно является продолжительностью.

Когда я искал решение, я увидел в java тип переменной строковый, но это не помогает ( здесь )

Только для вашей информации, Я использую эту библиотеку для запуска моего android приложения на своих тестовых устройствах. Это сервис под названием TestLab в Firebase. Значение тайм-аута должно быть выше, потому что у меня недостаточно времени для выполнения теста. Вот мой код, все работает хорошо, кроме этого TimeOut.

        TestMatrix testMatrix = new TestMatrix();

        testMatrix.TestSpecification = new TestSpecification();
        testMatrix.TestSpecification.TestTimeout = 600.0f; // I tested 600, 600.0f, "600", "30m", "500s"

        testMatrix.EnvironmentMatrix = new EnvironmentMatrix();
        testMatrix.EnvironmentMatrix.AndroidDeviceList = new AndroidDeviceList();
        testMatrix.EnvironmentMatrix.AndroidDeviceList.AndroidDevices = new List<AndroidDevice>();

        foreach (TestMatrixModel.TestData testData in _model.ListTests)
        {
            if (testData.IsSelected)
            {
                //Here I'm using my own data class to set GoogleAPI objects, it's simple
                //as it asks me strings even for integer numbers, and it's working
                foreach (int indice in testData.ChosenAndroidVersionsIndices)
                {
                    AndroidDevice device = new AndroidDevice();

                    device.AndroidModelId = testData.ModelID;
                    device.AndroidVersionId = testData.AvailableAndroidVersions[indice];
                    device.Locale = testData.AvailableLocales[testData.ChosenLocale];
                    device.Orientation = testData.Orientation;

                    testMatrix.EnvironmentMatrix.AndroidDeviceList.AndroidDevices.Add(device);
                }
            }
        }

Хорошо, и вот результат запроса:

    {
  "testMatrixId": "matrix-2dntrwio3kco7",
  "testSpecification": {
    "testTimeout": "300s",
    "testSetup": {},
    "androidTestLoop": {
      "appApk": {
        "gcsPath": "gs://myLinkIntoGoogleCloudStorage.apk"
      }
    }
  },
  "environmentMatrix": {
    "androidDeviceList": {
      "androidDevices": [
        {
          "androidModelId": "grandpplte",
          "androidVersionId": "23",
          "locale": "en_001",
          "orientation": "landscape"
        },
        {
          "androidModelId": "hero2lte",
          "androidVersionId": "23",
          "locale": "en_001",
          "orientation": "landscape"
        },
etc.....

Как видите, похоже, строка, установленная на «300 с» ... так почему «500 с» не может войти?

Большое спасибо.

1 Ответ

0 голосов
/ 05 марта 2020

Хорошо, я получил свой ответ:

testMatrix.TestSpecification.TestTimeout = "600s"; 

Так что это была строка, и ей нужно было завершить sh с помощью "s". Почему это не сработало, когда я пытался? Просто потому, что мой код был переопределен другой TestSpecification после ... моего плохого.

...