Транспортир - Test Suites - Не работает в последовательности

У меня была та же проблема и я не смог найти правильное решение, поэтому написал функцию GetFiles:

/// <summary>
/// Get all files with a specific extension
/// </summary>
/// <param name="extensionsToCompare">string list of all the extensions</param>
/// <param name="Location">string of the location</param>
/// <returns>array of all the files with the specific extensions</returns>
public string[] GetFiles(List<string> extensionsToCompare, string Location)
{
    List<string> files = new List<string>();
    foreach (string file in Directory.GetFiles(Location))
    {
        if (extensionsToCompare.Contains(file.Substring(file.IndexOf('.')+1).ToLower())) files.Add(file);
    }
    files.Sort();
    return files.ToArray();
}

Эта функция будет вызывать Directory.Getfiles() только один раз.

Например, вызовите функцию следующим образом:

string[] images = GetFiles(new List<string>{"jpg", "png", "gif"}, "imageFolder");

EDIT: для получения одного файла с несколькими расширениями используйте этот:

/// <summary>
    /// Get the file with a specific name and extension
    /// </summary>
    /// <param name="filename">the name of the file to find</param>
    /// <param name="extensionsToCompare">string list of all the extensions</param>
    /// <param name="Location">string of the location</param>
    /// <returns>file with the requested filename</returns>
    public string GetFile( string filename, List<string> extensionsToCompare, string Location)
    {
        foreach (string file in Directory.GetFiles(Location))
        {
            if (extensionsToCompare.Contains(file.Substring(file.IndexOf('.') + 1).ToLower()) &&& file.Substring(Location.Length + 1, (file.IndexOf('.') - (Location.Length + 1))).ToLower() == filename) 
                return file;
        }
        return "";
    }

Например, вызовите функцию, подобную этой :

string image = GetFile("imagename", new List<string>{"jpg", "png", "gif"}, "imageFolder");
0
задан user3055964 26 February 2019 в 04:20
поделиться

2 ответа

Просто добавьте приведенный ниже в ваш config.

specs: ['src/**/*spec.js'], // This should be the relative path to you spec.js

Теперь тест выполняется на основе порядка файлов в вашем пути.

Для запуска теста: protractor config.js

Suites в вашей конфигурации используется для группировки вашего теста на основе функциональности или чего-то еще.

Лучший способ решить эту проблему - переместить все ваши тесты в один файл и иметь два describe в вашей спецификации.

структура: spec.js

`describe()`
{
beforeall() \\ Spec1.js
it()
it()
}
describe(){
beforeAll()\\spec2.js
it()
it()
}

Надеюсь, это поможет вам

0
ответ дан Madhan 26 February 2019 в 04:20
поделиться

После некоторого расследования я смог воссоздать вашу проблему, и, похоже, она связана с тем, как Жасмин обрабатывает все ловушки. Существует полное обсуждение здесь и здесь , но в основном (и удивительно) кажется, что все в вашем тестовом файле, не объявленном в описании, будет выполнено до ЛЮБОГО [119 ] выполняются тесты, включая beforeAll hooks . Это удивляет меня, так как я почти уверен, что раньше использовал все снаружи, раньше описывал без проблем, но сейчас не могу это проверить.

Однако, если вы объявите свой хук beforeAll в своем описании, он будет поднят и все еще будет выполняться перед вашими тестами точно так же, как вы ожидаете, что он будет вести себя сейчас.

Можете ли вы попробовать переместить ваши блоки beforeAll в пределах вашего описания, как показано ниже:

Spec1.js

describe('Create Accounts', function () {
   beforeAll(function () { 
       originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
       jasmine.DEFAULT_TIMEOUT_INTERVAL = globalconstants.wait10Mints;
       browser.waitForAngularEnabled(false);
       browser.get(env.appUrl);
       browser.getTitle().then(function (title) {
           expect(title, "Browser title is not the expected. But " + browser.getTitle()).toBe("Valueone");
       });
       browser.waitForAngularEnabled(true);
       loginPage.login();

       commonPage.navigateToAccounts();
       accountsPage.deleteAccounts(number); 
   });

   it("Create Savings", function () {
       something 
   });

   it("Create current account", function () {
      something 
   });

});

Spec2.js [ 1112]

describe('Create Users', function () {
    beforeAll(function () {
        originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = globalconstants.wait10Mints;
        browser.waitForAngularEnabled(false);
        browser.get(env.appUrl);
        browser.getTitle().then(function (title) {
            expect(title, "Browser title is not the expected. But " + browser.getTitle()).toBe("Valueone");
        });
        browser.waitForAngularEnabled(true);
        loginPage.login();

        commonPage.navigateToUsers();
        usersPage.deleteUsers(name);
    });

    it("Create user", function () {
        something
    });

    it("Create user", function () {
        something
    });
})
0
ответ дан DublinDev 26 February 2019 в 04:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: