이것은 일반적인 질문이지만 Google 검색으로 많이 찾지 못했습니다. 테스트 목적으로 환경을 설정하는 테스트 프레임 워크가 있습니다. 내 응용 프로그램은 참조 경로를 통해이 프레임 워크를 사용하고 수동 테스트를 실행합니다. 그러나 일단 빌드 서버가 내 테스트를 실행하도록 요청하면 프레임 워크는 내 앱 설정을 찾을 수 없다는 불평을합니다. app.config 파일은 내 응용 프로그램의 테스트 프로젝트에 있으며 내 빌드 서버의 올바른 bin 폴더에 있는지 확인합니다. C# .NET 환경에서이 작업을 수행합니다.기본 설정 클래스가 앱 설정을 찾지 못함
편집 :
나는에 대해 구체적으로 무엇인지 확실하지 않다. 테스트 서버를 로컬에서 실행하는 것으로 보이기 때문에 서버를 빌드하는 것으로 상상할 수 있습니다.하지만 어떻게보아야하는지 전혀 알지 못합니다. 빌드 서버에 대한 다른 것은 실패하고 앱 설정 만 가져옵니다.
프레임 워크는 .NET 4.0이며 주 프로젝트는 4.5입니다. 나는 nunit을 사용하여 테스트를 실행하고 빌드 프로세스 외부에서 실행하지만 Nunit GUI를 사용하는 것은 같은 시점에서 실패합니다.
응용 프로그램 설정을 잡고 코드는 아주 기본입니다 :
string databaseName = ConfigurationManager.AppSettings["databaseName"];
EDIT 내 테스트의
발췌문 :
public class UserServiceTests : DeployDBEveryFixtureBase
{
public UserServiceTests()
{
DBSetup("Core");
DBSetup("Postal");
DBSetup("Common");
}
private UserService userService = new UserService(string.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3};",
ConfigurationManager.AppSettings["targetServer"],
ConfigurationManager.AppSettings["databaseName"],
ConfigurationManager.AppSettings["userID"],
ConfigurationManager.AppSettings["password"]));
[Test]
public void UserService_Get()
{
// Act
User user = userService.GetUser(Guid.Empty, "*****", string.Empty);
// Assert
Assert.IsTrue(user.FirstName == "System");
}
}
환경 배포의 기본 클래스에 DeployDBEveryFixtureBase. DBSetup 호출은 각 데이터베이스가 적절한 순서로 전개되는지 확인합니다. 그 모든 것들이 잘 돌아가고 테스트가 끝났지 만 나는 설명 된 오류를 얻는다. 데이터베이스를 보면 모든 데이터베이스를 제대로 배포 한 다음 제거 할 수 있습니다 (기본 클래스에는 TestFixtureTearDown이 포함되어 있음). 빌드 프로세스가 다시 실행하려고하는 것처럼 보입니다.
참고 :이 과정에서 솔루션 파일 만 빌드합니다. 현재 빌드시 .proj 파일이 없습니다.
이 방법은 광범위하고 구체적입니다. 시스템에 문제가 있거나 서버를 빌드 할 수 있습니다. – Sievajet
build 서버에 추적 코드를 추가하여 app.config와 함께 올바른 디렉토리에서 코드가 실행되도록 할 수 있습니까? – khlr
빠른 점검을 위해 테스트 app.config 파일을 테스트 프로젝트의 NUnit 어셈블리 파일이있는 동일한 폴더에두고 GUI의 NUnit에서 테스트 해보십시오. – StartingFromScratch