나는 종종 .exe
으로 컴파일되는 DLL 프로젝트를 가지고 있으므로 클래스 프로젝트를 쉽게 테스트 할 수 있습니다. 한 클래스는 Main()
메서드를 포함하고 있는데, .dll
파일로 컴파일 할 때 쓸모가 없습니다. 클래스 라이브러리로 컴파일 할 때마다이 클래스를 프로젝트에서 자동으로 제외하고 싶습니다. 전능하신 구글이 내 질문에 대한 답을 갖고있는 것처럼 보이지 않기 때문에 나는이 문제에 부딪치게 된 최초의 사람들 중 하나가되어야 할 것 같다. 어떻게해야 하는가?Visual Studio : DLL로 컴파일하는 경우 클래스 제외
답변
나는 이것을 지속적으로 수행함에있어 단위 테스트를 진지하게 고려할 것이다. 단위 테스트가 제대로 구현되지 않더라도 단지 중간 디버거로 사용합니다. 나는 단위 테스트 프로젝트를 코드 디버깅을위한 콘솔 어플리케이션의 용도로 사용한다고 말하면서 액세스를 얻는 관점에서 유닛의 어떤 형태를 구현하기를 원한다면 당신의 인생을 훨씬 더 쉽게 그리고 미래에 만들 것입니다. 당신이 할 수있는 시험.
1) 조건부 컴파일러 옵션을 사용
[TestMethod]
public class YourClassNameTests
{
public T YourObject;
[TestInitialize()]
public void Initializer()
{
YourObject = new T();
}
[TestMethod()]
public void YourMethodTest()
{
//Arrange
YourObject.ReliantProperty = 1;
//Act
var objResult = YourObject.YourMethod();
//Assert
Assert.IsTrue(objResult == 1);
}
}
내가하고 싶은 테스트는 단위 테스트가 아닙니다. 그들은 일반적으로 DLL의 기능을 테스트합니다. 나는 실시간으로 획득 한 데이터로 작업하고 있으며 올바른지 여부를 확인할 수 있도록 출력을 표시하는 테스트 프로그램이 필요합니다. 프로그래밍 방식으로 확인할 수는 없습니다. –
그런 다음 Luke가 권고하는 것처럼 테스트 할 콘솔 응용 프로그램 프로젝트를 추가하는 것을 고려해야합니다. 즉, 테스트를 수행하는 별도의 프로젝트가 정답과 같게 들릴 것입니다. –
당신은 내가 생각할 수있는 솔루션의 몇 가지있다. 이 Main 메서드 internal
을 확인하거나 실행할 수있는 테스트 프로젝트로 이동)
2 #endif 다음 DEBUG
public void Main() {
// Do Stuff
}
#IF 디버그
에있는 경우 예를 들어, 만 포함되어 있습니다. 그런 다음 직접 사용하거나 테스트 DLL이 내부 메소드를 볼 수 있는지 확인하십시오.
3) Main 메서드를 원래 DLL을 참조하는 완전히 다른 .exe로 옮깁니다. (이는 테스트 프레임 워크를 사용하지 않고 옵션 2와 유사합니다).
- 1. 부스트로 컴파일하는 Visual Studio
- 2. Visual Studio 2013에서 libpq 사용, DLL로 컴파일
- 3. Visual Studio : 프로젝트에서 빨리 제외
- 4. DLL로 컴파일하는 ASP.NET 사용자 컨트롤
- 5. 대상에 따라 파일 포함/제외 (Visual Studio)
- 6. 하나의 프로젝트를 .NET에서 여러 dll로 컴파일하는 방법
- 7. wpf 응용 프로그램을 DLL로 컴파일하는 방법은 무엇입니까?
- 8. Visual Studio 릴리스 폴더에서 제외 할 내용
- 9. Visual Studio (Eclipse의 경우)
- 10. Visual Studio 2008의 VSS에서 종속 파일 제외
- 11. Visual Studio 2010에서 C를 컴파일하는 방법은 무엇입니까?
- 12. Visual Studio 2010에서 glblendequation을 컴파일하는 방법은 무엇입니까?
- 13. Visual Studio 2010 for Linux에서 컴파일하는 방법
- 14. Visual Studio x64로 컴파일하는 방법은 무엇입니까?
- 15. Visual Studio 2013에서 .lib를 다시 컴파일하는 방법
- 16. Visual Studio 2012에서 확장명이 .bak 인 클래스 파일
- 17. 관리 코드 용 디버거 (Visual Studio 제외)
- 18. Visual Studio 2010 - 파일 형식 제외
- 19. Visual Studio 2010에서 제외 된 파일을 만듭니다.
- 20. 단일 Visual Studio C++ 프로젝트의 디렉터리 제외
- 21. Visual Studio 2012 - 빌드에서 제외 된 파일
- 22. Visual Studio Addin "빌드에서 제외"속성
- 23. Visual Studio 검색에서 특정 파일 제외
- 24. 특정 Boost 라이브러리를 DLL로 컴파일하는 방법
- 25. Visual Studio : 프로젝트에서 클래스 다이어그램을 제거 하시겠습니까?
- 26. Mingw를 DLL로 사용하여 C 파일을 컴파일하는 방법
- 27. 방법 .Net DLL로 C 라이브러리를 컴파일하는 방법?
- 28. Visual Studio 프로젝트 테스트 픽스처를 nunit dll로 바꾸기
- 29. Visual Studio 2010 C# 프로젝트에서 .dll 파일을 .dll로 연결
- 30. 컴파일 속도 Visual Studio
단위 테스트 프로젝트를 만들고 거기에서 .DLL을 테스트하십시오. – LukeHennerley
단위 테스트는 단순히 별도의 메소드 테스트에 사용되지 않습니까? 전체적으로 프로그램을 테스트하고 싶습니다. –
이것은 프로그램이 아닙니다. 당신이 가지고있는 것의 근본적인 요지는 당신이 말했듯이 .DLL입니다, 그러므로 그것은 응용 프로그램이 아닙니다. 귀하의 방법을 테스트하는 것은 근본적으로 당신이 어쨌든 달성하려고 시도하는 것입니다, 그렇지 않습니까? – LukeHennerley