[.NET] Environment variabelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Hobbles
  • Registratie: Augustus 2004
  • Laatst online: 10-09 08:00
Ik start batch jobs via een cmd op om enviroment variabelen te zetten. Tijdens het debuggen van een applicatie gebruik ik een soortgelijke oplossing als Solution Build Environment. Dat betekent dat de variabelen tijdens het gewone debuggen wel correct gezet worden.

Het probleem is dat de build server deze addin niet kent en daardoor de unit tests, die gebruik maken van deze environment variabelen, niet correct kan uitvoeren. Je zou natuurlijk kunnen argumenteren dat unit tests hier niet afhankelijk van zouden moeten zijn. Systeemwijde variabelen zijn ook geen optie, want deze moeten per applicatie instelbaar zijn.

Ik vraag me echter af hoe anderen dit oplossen. Het is enkel de bedoeling dat we tijdens het debuggen en productie met meerdere sets van environment variabelen willen kunnen werken. Ik zie op dit moment geen makkelijke oplossing dat zowel tijdens debuggen als unit testen werkt.

Everything is possible if you really want it.


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Je kunt je environment vars ook in je app zelf zetten. Dit opent de weg om strategy classes te implementeren welke bij het opstarten van je app je environment vars zetten naar hoe jij ze wilt. Dan zou je in je app.config ofzo een var kunnen gebruiken die aangeeft welke van de strategy classes je app moet gebruiken.

Zie deze google query voor meer info

Acties:
  • 0 Henk 'm!

  • Hobbles
  • Registratie: Augustus 2004
  • Laatst online: 10-09 08:00
Dus dat betekent dat er in het unit test project een aparte app.config komt? Of hoe kan ik hiermee dan variëren. Telkens het bestand aanpassen lijkt me niet ideaal. Of valt er iets met MSBuild scripts te bereiken?

Het strategy pattern toepassen lijkt inderdaad een goed idee!

Everything is possible if you really want it.


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Wat je ook kan doen is in je app compiler Preprocessor Directives gebruiken. Wellicht n beetje ranzig maar als het alleen voor development/testing is....

Dus zoiets

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[..]

public static IEnvironmentSetupStrategy GetEnvironment()
{
#if (STRAT1)
         return new ImplStrat1();
      #elif (STRAT2)
         return new ImplStrat2();
      #else
         return new DefaultStratImpl();
      #endif

}

[..]
info

Acties:
  • 0 Henk 'm!

  • Hobbles
  • Registratie: Augustus 2004
  • Laatst online: 10-09 08:00
Preprocessor directives hiervoor gebruiken vind ik wat jammer. Eens kijken of ik geen 2 .config bestanden kan gebruiken. 1 app.config en 1 test.config of iets dergelijks...

Everything is possible if you really want it.