SORU
7 Mart 2012, ÇARŞAMBA


phpunit yeniden rasgele testler

Symfony2 başvurum PHPUnit kullanarak test etmeye çalışıyorum. Bende bir proje nerede her şey çalışıyor beklendiği gibi, ama benim başka bir projem var bu garip davranışın PHPUnit da Durur yürütülen Test Paketi rasgele yakın sonu tüm testleri ve yeniden başlatır veya yeniden başlatır testlerden sonra son Test Paketi ve yazma kod kapsamı. Diğer zamanlarda ise normal olarak çalışır.

Burada neler olduğunu görünür hale getirmek için bazı çıktı ( Test ve yeniden bitti):

PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
...........PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
...PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
..................

Time: 01:03, Memory: 43.00Mb

OK (83 tests, 145 assertions)

Writing code coverage data to XML file, this may take a moment.

Generating code coverage report, this may take a moment.

Burada Test Suite tüm testleri çalıştırma: sonra yeniden bir örnek

PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
..................

Time: 01:29, Memory: 53.25Mb

OK (83 tests, 145 assertions)

Writing code coverage data to XML file, this may take a moment.

Generating code coverage report, this may take a moment.
PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from C:\workspace\cllctr\app\phpunit.xml

................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.

Benim diğer proje herhangi bir sorun olmadan çalışır gibi, benim kod içinde bir sorun olmalı. Ama muhtemelen bu davranışları neyin tetiklediğini anlamaya olamaz! Bu beklenen bir şey,/tuhaf gösterme günlükleri.

EDİT

Dün garip bir şey fark ettim: MongoDB geçmek için bazı alakasız nedenlerden dolayı MySQL karar verdim. Geçiş bittikten sonra, tüm testleri sorunsuz çalıştırın. Bunu birçok kez denedim ve artık çoğaltmak mümkün değilim. Bu sadece işlevsel testlerim oldu, sorun bazı komutlar çalışır WebTestCase sınıfım ve açık veritabanı yeniden inşa etmek olduğunu düşünürüm. Belki de MongoDB kullanan birisi bu davranışı yeniden?

CEVAP
18 Ocak 2014, CUMARTESİ


OAuth kimlik Doğrulaması üç adımda yapılır:

  1. Tüketici yetkisiz bir İstek Belirteci alır.

  2. Kullanıcı İsteği Token yetkisi verir.

  3. Tüketici değişim İsteği bir Erişim Belirteci Belirteci.

İşte bu gibi görünecektir:

public class InMemoryTokenManager : IConsumerTokenManager, IOpenIdOAuthTokenManager
{
private Dictionary<string, string> tokensAndSecrets = new Dictionary<string, string>();

public InMemoryTokenManager(string consumerKey, string consumerSecret)
{
    if (String.IsNullOrEmpty(consumerKey))
    {
        throw new ArgumentNullException("consumerKey");
    }

    this.ConsumerKey = consumerKey;
    this.ConsumerSecret = consumerSecret;
}

public string ConsumerKey { get; private set; }

public string ConsumerSecret { get; private set; }

#region ITokenManager Members

public string GetConsumerSecret(string consumerKey)
{
    if (consumerKey == this.ConsumerKey)
    {
        return this.ConsumerSecret;
    }
    else
    {
        throw new ArgumentException("Unrecognized consumer key.", "consumerKey");
    }
}

public string GetTokenSecret(string token)
{
    return this.tokensAndSecrets[token];
}

public void StoreNewRequestToken(UnauthorizedTokenRequest request, ITokenSecretContainingMessage response)
{
    this.tokensAndSecrets[response.Token] = response.TokenSecret;
}

public void ExpireRequestTokenAndStoreNewAccessToken(string consumerKey, string requestToken, string accessToken, string accessTokenSecret)
{
    this.tokensAndSecrets.Remove(requestToken);
    this.tokensAndSecrets[accessToken] = accessTokenSecret;
}

/// <summary>
/// Classifies a token as a request token or an access token.
/// </summary>
/// <param name="token">The token to classify.</param>
/// <returns>Request or Access token, or invalid if the token is not recognized.</returns>
public TokenType GetTokenType(string token)
{
    throw new NotImplementedException();
}

#endregion

#region IOpenIdOAuthTokenManager Members

public void StoreOpenIdAuthorizedRequestToken(string consumerKey, AuthorizationApprovedResponse authorization)
{
    this.tokensAndSecrets[authorization.RequestToken] = string.Empty;
}

#endregion
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008