Кусок кода работает в консольном приложении, но не работает внутри nunit test

Простое консольное приложение, открытое соединение без проблем:

    static void Main(string[] args)
    {
        string connectionString = String.Format(
           @"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
            "pwd", "schema", "server");

        using (IDbConnection con = new OleDbConnection(connectionString))
        {
            con.Open();
            Console.WriteLine("Opened");
        }
        Console.ReadKey();
    }

но если попытаться сделать то же самое в методе тестирования nunit:

public class UnitTest1
{
    [Test]
    public void TestMethod1()
    {
        string connectionString = String.Format(
           @"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
            "pwd", "schema", "server");

        using (IDbConnection con = new OleDbConnection(connectionString))
        {
            con.Open();
        }
    }
}

Я получил исключение: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

Очевидно проблема в окружающей среде.

Как "настроить" nunit для использования "тех же" настроек, что и для консольного приложения

некоторые детали:

целевая платформа: 4.0 целевая платформа: x86 nunit 2.5.9 ОС: Windows 7 x64

2 ответа

Решение

Проблема вызывает скобки в имени папки. (C:\Program Files (x86))

Если я запускаю nunit из папки c:\something(nunit)\, я получаю ту же ошибку.

Замена VS-пути на короткие 8.3 имен мне не помогает. Поэтому пришлось установить Oracle Client 11 и проблема исчезла.

Проверьте, помогает ли следующее: http://ora-12154.ora-code.com/

Другие вопросы по тегам